C'è qualche modo in C#. NET 2.0! combinare più predicti?Combina più predicti
Diciamo che ho il seguente codice.
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;
}
}
Questo mi dà:
Emma
Ethan
Emily
Quindi questa è roba abbastanza freddo, ma so che voglio essere in grado di filtrare l'utilizzo di più predicati.
quindi voglio essere in grado di dire qualcosa di simile:
List<string> filteredNames = names.FindAll(StartsWithE OR StartsWithI);
al fine di ottenere:
Emma
Isabella
Ethan
Emily
Come posso raggiungere questo obiettivo? Attualmente sto solo filtrando l'elenco completo due volte e combinando i risultati in seguito. Ma sfortunatamente questo è abbastanza inefficiente e, ancora più importante, perdo l'ordinamento originale, che non è accettabile nella mia situazione.
Devo anche essere in grado di scorrere su un numero qualsiasi di filtri/predicati poiché ci può essere molto.
Anche in questo caso si ha la necessità di essere una soluzione .NET 2.0 purtroppo non riesco a utilizzare una versione più recente del quadro
Grazie mille.
Grazie! Funziona perfettamente! – eric
Molto utile. Necessari predicati multipli per un filtro su ICollectionView. – pStan
L'intera funzione può essere abbreviata in 'return item => predicates.All (predicate => predicate (item));' – NibblyPig