Filter-Liste<> Objekt ohne Verwendung der foreach-Schleife in C#2.0
Wie wir Sie filtern können, das Objekt in der Liste<> in C#?
InformationsquelleAutor Kthevar | 2009-05-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie wir Sie filtern können, das Objekt in der Liste<> in C#?
InformationsquelleAutor Kthevar | 2009-05-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sagen wir, wir haben ein
List<string>
und Sie wollen nur die Elemente, wo die Länge der Zeichenfolge größer als 5.Den code unten zurück
List<string>
mit den Ergebnissen:resultList wird containt 'Welt!' und 'große!!'.
In diesem Beispiel wird ein anonyme Methode. Es kann auch geschrieben werden als:
Den Delegierten vor, OnlyLargerThanFive, ist auch als ein Prädikat.
Neue lamdas, wie kommen Sie nicht myList.FindAll(l => l.Länge > 5)
Es ist 'normal', 'for' - Schleife intern. Korrigieren Sie mich, wenn ich falsch Liege, jemand.
okay, Sie können es nur nicht in der intellisense ist alles. Doh
Allen: Die Frage ist für C# 2.0, die nicht über die lambda-syntax für anonyme Delegaten.
InformationsquelleAutor Razzie
Liste<>.Finden (gibt die erste passende Treffer) und Liste.FindAll() gibt alle übereinstimmenden Ereignisse.
Ein Beispiel mit einer Liste von komplexen Typen wären wie folgt:
Habe ich ein Klasse Bericht:
und eine Liste der Report
Suchen von Elementen in der Liste, wo ReportName = 'MyRoutes', würde der code sein:
Den ersten Bericht:
Beachten Sie, dass das übergebene Objekt die Stellvertretung sollte der Art, mit dem die Liste gefüllt wird.
InformationsquelleAutor Rashmi Pandit
Die beste Lösung ist die Verwendung von lambda:
Kann es intern die Verwendung von foreach, aber man kann nicht wirklich filtern, ohne die Iteration für die ganze Liste.
Sorry, nicht bemerkt.
InformationsquelleAutor Migol
neben der Möglichkeit erzählt von @Goldene Himbeere Sie können auch LINQ.
PS:- IST NUR MÖGLICH IN .NET 3 und oben
danke @goldene Himbeere, die ich Hinzugefügt habe PS auf die Antwort 🙂
InformationsquelleAutor TheVillageIdiot
Könnten Sie LINQ. Habe ich noch nicht getestet, aber ich glaube es werden filter die Elemente meiner Liste von pie Füllungen, nur das zu zeigen, beginnen mit einem "P":
InformationsquelleAutor itsmatt
Können Sie LINQ wie diese.
List<string> List = new List<string> { "i", "am", "using", "LINQ!" };
List<string> result = myList.Where(s => s.Length > 3).ToList();
es funktioniert nur in .net 3 und höher.
InformationsquelleAutor Yissachar