'dynamisches' lambda expression
-
Hallöchen,
würde gerne aus folgendem .....
string_sub_list = l.FindAll((_T) => { return (_T.Contains("aa") || _T.Contains("bb")); });
sowas verwirklichen
List<string> Suchliste; // die soll strings enthalten, nach denen in der Lambda expression gesucht wird. string_sub_list = l.FindAll((_T) => { return (Suchlite[0] || Suchliste[1] || ... Suchliste[n]); });
Mit anderen Worten, die Anzahl der Parameter für die FindAll()-Funktion variabel halten. Wie könnte ich das anstellen?
danke!
-
Koenntest dir nen Dynamischen Expression-Tree zusammen basteln und den dann reingeben.
-
var result = l.FindAll(t => Suchliste.Any(j => t.Contains(j)));
-
Firefighter schrieb:
Koenntest dir nen Dynamischen Expression-Tree zusammen basteln und den dann reingeben.
Dynamischer Expression-Tree
... dieses Stichwort hat geholfen.
Danke!
-
Du kannst dir "Finder" delegates basteln
var finders = new List<Func<string, bool>>(); finders.Add(i => i.Contains("aa")); var results = l.FindAll((i) => { foreach (var finder in finders) if (!finder.IsTrue(i)) return true; });
// hier im Forum getippert
-
µ schrieb:
var result = l.FindAll(t => Suchliste.Any(j => t.Contains(j)));
jepp. Super!
Aber warum den result als var - und nicht als List?
-
Faulheit beim Tippen