Quelle: dotnetpro
Suchen mit LINQ, Teil 2 18.05.2020, 00:00 Uhr

Kontrollierte Datenabfrage

Die LINQ-Abfragesyntax und die Abfrageoperatoren im Detail.
Nachdem Sie im vorangegangenen Heft [1] die Grundlagen zu LINQ anhand diverser Beispiele kennenlernen konnten, sollen nun weitere Details zu den von LINQ bereitgestellten Operatoren betrachtet werden. Dabei durchleuchten wir auch, was sich hinter den Klassen Enumerable und Queryable und den zugehörigen Schnittstellen verbirgt und wie Abfragen im Detail formuliert und ausgeführt werden.
LINQ-Abfragen nutzen Sie immer dann, wenn Klassen die Interfaces IEnumerable oder IQueryable implementieren. Das Interface IEnumerable kommt bei allen eingebauten Kollektionen und generischen Auflistungen IEnumerable<T> zum Einsatz, darunter List, Dictionary, HashSet, Queue, Sorted­Directory, SortedList, LinkedList und Stack. Zusätzlich werden alle benutzerdefinierten Klassen berücksichtigt, die das Interface IEnumerable implementieren. Welche Erweiterungsmethoden basierend auf dem Interface IEnumerable für die darüber verwalteten Daten bereitstehen, wird über die Klasse Enumerable des Namensraums System.Linq bestimmt. Sie legen diese Erweiterungsmethoden offen, indem Sie auf Quelltextebene in Visual Studio den Text System.Linq.Enumerable. eingeben. IntelliSense zeigt dann die Liste verfügbarer Methoden, darunter Aggregate<>, All<>, Any<>, AsEnumerable<>, Concat<>, GroupBy<>, Max<>, Min<>, OrderBy<>, ToList<> und Where<> (Bild 1).

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar