Salut
Je me demande si tu ne te méprends pas sur un point
J'ai créé un joli prédicat qui fonctionne très bien avec une Liste<T>.
Quand tu fais :
var r = lstS.Where(MonPredicat()).ToList();
Le prédicat dans ton Where s'applique à chaque élément de ta liste, donc à des string et pas à la liste en elle-même. Cf. la doc de List<T>.Where, en entrée c'est soit un Func<T, bool>, soit un Func<T, int, bool>. C'est donc très simple, tu as juste à appeler ton prédicat en lui passant ta valeur en entrée :
1 2 3 4 5 6 7
| IList<string> dummyList = new List<string> { "aaa", "axa", "bbb", "bxb", "cxx", "xxx" };
Func<string, bool> containsX = input => input.Contains('x');
dummyList.Where(containsX).ToList().ForEach(value => Console.WriteLine(value));
string noX = "rrr";
string withX = "jxx";
Console.WriteLine(containsX(noX) ? "{0} contains at least one x" : "{0} does not contain any x", noX);
Console.WriteLine(containsX(withX) ? "{0} contains at least one x" : "{0} does not contain any x", withX); |
Ou alors je n'ai pas compris ton problème
Partager