¿Hay alguna forma en C# .NET 2.0! combinar varios Predicates?Combinar múltiples predicciones
Digamos que tengo el siguiente 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;
}
}
Esto me da:
Emma
Ethan
Emily
Así que esto es algo bastante fresco, pero sé que quiero ser capaz de filtrar el uso de múltiples predicados.
por lo que quiero ser capaz de decir algo como esto:
List<string> filteredNames = names.FindAll(StartsWithE OR StartsWithI);
el fin de obtener:
Emma
Isabella
Ethan
Emily
¿Cómo puedo lograr esto? Actualmente solo estoy filtrando la lista completa dos veces y combinando los resultados después. Pero desafortunadamente esto es bastante ineficiente y aún más importante, pierdo el orden de clasificación original, lo cual no es aceptable en mi situación.
También necesito poder iterar sobre cualquier cantidad de filtros/predicados, ya que puede haber bastante.
Una vez más, es necesario que haya una solución .NET 2.0 por desgracia no puedo utilizar una versión más reciente del marco
muchas gracias.
¡Gracias! Funciona perfecto! – eric
Muy útil. Se necesitan múltiples predicados para un filtro en ICollectionView. – pStan
Toda la función se puede acortar a 'devolver elemento => predicados.Todo (predicado => predicado (elemento));' – NibblyPig