Mehrere Prädikate kombinieren
Gibt es eine Möglichkeit in c # .NET 2.0! mehrere Prädikate kombinieren?
Angenommen, ich habe den folgenden Code.
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;
}
}
Das gibt mir:
Emma
Ethan
Emily
Das ist ziemlich cool, aber ich möchte in der Lage sein, mit mehreren Prädikaten zu filtern.
Also möchte ich in der Lage sein, so etwas zu sagen:
List<string> filteredNames = names.FindAll(StartsWithE OR StartsWithI);
Um zu bekommen:
Emma
Isabella
Ethan
Emily
Wie kann ich das erreichen? Momentan filtere ich nur die komplette Liste zweimal und kombiniere die Ergebnisse danach. Aber leider ist dies ziemlich ineffizient und noch wichtiger ist, dass ich die ursprüngliche Sortierreihenfolge verliere, was in meiner Situation nicht akzeptabel ist.
Ich muss auch in der Lage sein, über eine beliebige Anzahl von Filtern / Prädikaten zu iterieren, da es eine ganze Menge geben kann.
Auch hier muss es sich um eine .NET 2.0-Lösung handeln. Leider kann ich keine neuere Version des Frameworks verwenden
Danke vielmals.