Combine Predicados Múltiplos
Existe alguma maneira no c # .NET 2.0! combinar vários predicados?
Digamos que eu tenha o seguinte código.
List<string> names = new List<string>();
names.Add("Jacob");
names.Add("Emma");
names.Add("Michael");
names.Add("Isabella");
names.Add("Ethan");
names.Add("Emily");
List<string> filteredNames = names.FindAll(StartsWithE);
static bool StartsWithE(string s)
{
if (s.StartsWith("E"))
{
return true;
}
else
{
return false;
}
}
Isso me dá:
Emma
Ethan
Emily
Então, isso é muito legal, mas eu sei que quero filtrar usando vários predicados.
Então eu quero poder dizer algo assim:
List<string> filteredNames = names.FindAll(StartsWithE OR StartsWithI);
Para obter:
Emma
Isabella
Ethan
Emily
Como posso conseguir isso? Atualmente estou apenas filtrando a lista completa duas vezes e combinando os resultados depois. Mas infelizmente isso é bastante ineficiente e, mais importante ainda, eu perco a ordem de classificação original, o que não é aceitável na minha situação.
Eu também preciso ser capaz de iterar sobre qualquer número de filtros / predicados, pois pode haver bastante coisa.
Novamente, ele precisa ser uma solução .NET 2.0, infelizmente não posso usar uma versão mais recente do framework
Muito obrigado.