Inhaltsverzeichnis:
Video: C# Tutorial 15 LINQ Tutorial 2024
Von John Paul Mueller
Sprache INtegrated Query (LINQ) ist ein Feature von. NET Framework, das weit über Microsoft hinausgeht. Sie können LINQ verwenden, um fast alles abzufragen, indem Sie wichtige Operatoren zusammen mit einigen zusätzlichen Abfrageoperatoren kennen. Wenn Sie unterwegs etwas verloren haben, bietet Microsoft eine Fülle von Ressourcen über sein Netzwerk, Blogs und Foren.
Wesentliche LINQ-Operatoren
Language INtegrated Query (LINQ) verwendet eine erstaunliche Anzahl von Operatoren. Ein -Operator ist ein spezielles Wort, das LINQ mitteilt, welche Art von Abfrage auszuführen ist, z. B. die Überprüfung, ob zwei Werte gleich sind. Operatoren können in die Hunderte gehen, aber in den meisten Fällen werden Sie die meisten Aufgaben mit nur wenigen Standardoperatoren ausführen. Im Folgenden finden Sie eine Liste der wichtigsten LINQ-Operatoren.
Operator | Beschreibung |
---|---|
from | Definiert das temporäre Objekt, das zum Ausführen einer Abfrage verwendet wird. Denken Sie an
diesen Operator als das individuelle Element-Objekt definieren, von dem Sie alle anderen Daten für die Abfrage ableiten. Beispielsweise wählen Sie aus, welche Daten in der Ausgabe angezeigt werden und wie diese Daten sortiert sind , basierend auf der temporären Variablen. Der Operator ist der einzige Operator, der in jeder Abfrage angezeigt werden muss, die Sie erstellen. |
in | Definiert die Datenquelle, die zum Abrufen der Daten verwendet wird. Eine Datenquelle
kann jedes Objekt sein, das von einem Datenanbieter unterstützt wird. Der Provider erstellt eine Verbindung zwischen der Datenquelle und der LINQ-Abfrage. Eine Datenquelle kann z. B. ein Objekt wie ein Listenfeld , eine XML-Datei, eine SQL Server-Tabelle, Active Directory, einen Web -Dienst oder einfach alles enthalten, was Sie verwenden möchten. um Informationen zu sammeln. Es ist sogar möglich, über eine LINQ-Abfrage direkt mit Dateien auf Ihrer -Festplatte zu arbeiten. Eine Abfrage kann so viele übereinstimmende Paare von Operatoren von und in enthalten, wie zur vollständigen Beschreibung der in der Abfrage verwendeten -Datenquellen erforderlich sind. |
select | Wählt die Ausgabeinformationen für die Abfrage aus. Die einfachste Ausgabe
ist das gleiche Objekt, das Sie mit dem Operator von definieren. Ein select-Operator kann jedoch berechnete Werte, Arrays von Daten oder einzelne Objekteigenschaften enthalten. Der limitierende Faktor ist in den meisten Fällen die vom LINQ Provider angebotene Funktionalität. Alle vier Standardanbieter enthalten den gesamten -Bereich von ausgewählten Operatorverhalten. Eine -Abfrage enthält nur einen select-Operator , und dieser Operator muss als letzter Operator in der -Abfrage erscheinen. |
where | Beschreibt die Bedingungen, unter denen ein Element als Teil
der Ausgabe erscheint.Der where-Operator benötigt ein Boolean-Argument, um die Ausgabebedingungen zu definieren. Sie können so viele Operatoren wie enthalten, um die Ausgabekriterien vollständig zu beschreiben. LINQ interpretiert die Operatoren in der Reihenfolge, in der sie in der Abfrage vorkommen, daher ist die Reihenfolge wichtig. Wenn eine Abfrage nicht wie erwartet funktioniert, ändern Sie die Reihenfolge der where-Operatoren, um die Anforderungen für die Ausgabe besser beschreiben zu können. Verwenden Sie den Debugger, um Fehler im logischen -Fluss von where-Operatoren zu finden. |
orderby | Definiert die Reihenfolge, in der die Ausgabeelemente erscheinen. Der einfachste orderby-Operator
stützt sich auf das -Objekt, das Sie mit dem Operator definieren. Ein orderby-Operator kann jedoch jede Anweisung akzeptieren, die ein logisches Ordnungsargument als Eingabe definiert - normalerweise numerisch, alphabetisch, symbolisch oder binär. Sie können so viele orderby-Operatoren wie verwenden, um die Ausgabereihenfolge der Daten vollständig zu beschreiben. Wie der where-Operator interpretiert LINQ den orderby-Operator in der Reihenfolge, in der er in der Abfrage erscheint. Folglich ist die Reihenfolge der Orderby-Operatoren wichtig. |
join and on | Kombiniert zwei oder mehr Datenquellen, um eine zusammengesetzte Ansicht von
der Daten zu erstellen. Die Datenquellen müssen sich nicht auf dieselben Anbieter stützen. Sie können so viele Joinoperatoren wie verwenden, um alle für eine -Abfrage verwendeten Datenquellen vollständig zu beschreiben. Der Operator on definiert das Kriterium , das zum Kombinieren zweier Datenquellen verwendet wird. Koppeln Sie die Join- und On-Operatoren , um eine vollständige Datenquelle zu erstellen. |
let | Erstellt einen berechneten Wert für die Verwendung in der Abfrage. Berechnete
-Werte erleichtern die Formulierung komplexer Abfragen. Außerdem können Sie einen berechneten Wert an den Aufrufer übergeben, um zusätzliche Ausgabeinformationen bereitzustellen. In vielen Fällen stellt der let-Operator die Mittel zum Übergeben von -Daten bereit, die LINQ aufgrund eines Namenskonflikts normalerweise nicht passieren wird. Sie können so viele Operatoren wie erforderlich verwenden, um die vollständige Abfragefunktionalität bereitzustellen, aber Sie sollten die Verwendung von auf Situationen beschränken, in denen ein berechneter -Wert die Abfragegeschwindigkeit erhöht. |
Erforschen von LINQ-Standardabfrageoperatorgruppen
Die Verwendung von Standardabfrageoperatoren vereinfacht die Arbeit mit Language INtegrated Query (LINQ) erheblich. In vielerlei Hinsicht haben Sie wahrscheinlich bereits mit einfachen Abfrageoperatoren gearbeitet. Wenn Sie beispielsweise das Schlüsselwort orderby verwenden, verwenden Sie einen Abfrageoperator in der Sortiergruppe der Standardabfrageoperatoren. Wenn Sie das Schlüsselwort where verwenden, verwenden Sie einen anderen Abfrageoperator, diesmal jedoch in der Filtergruppe.
Hier finden Sie eine Liste der Standardabfrageoperatorgruppen, in der Sie zusätzliche Informationen finden können.
Gruppe | Gruppenbeschreibung | Eingeschlossene Operatoren | Zusätzliche Informationen |
---|---|---|---|
Aggregationsoperationen | Die Aggregationsoperatoren unterstützen Sie bei der Durchführung von mathematischen
-Aufgaben mit einer Datenquelle. |
Aggregat, Durchschnitt, Anzahl, LongCount, Max, Min und Summe | Microsoft
Entwicklernetzwerk: Aggregationsoperationen |
Verkettungsoperationen | Mit dem einzigen Verkettungsoperator können Sie zwei
Sequenzen kombinieren. |
Concat | Microsoft
Entwicklernetzwerk: Verkettungsoperationen |
Konvertieren von Datentypen | Die Konvertierung von Datentypen erfolgt in zwei Formen: verzögert und
nicht zurückgestellt. Die verzögerten Konvertierungsoperatoren konvertieren die Ergebnisse einer Abfrage in einen bestimmten Typ, wenn der Code das Ergebnis interpretiert. Die nicht zurückgeführten Konvertierungsoperatoren ändern die Ausgabe einer -Abfrage in einen bestimmten Typ. |
AsEnumerable, AsQueryable, Cast,
OfType, ToArray, ToDictionary, ToList, und ToLookup |
Microsoft
Entwicklernetzwerk: Datentypen konvertieren |
Elementoperationen | Die Elementoperatoren helfen Sie wählen ein bestimmtes Element in einer
-Sequenz aus, auch wenn Sie keine identifizierenden Informationen über dieses Element kennen, wie z. B. seinen Namen. |
ElementAt, ElementAtOrDefault, First, FirstOrDefault, Last,
LastOrDefault, Single und SingleOrDefault |
Microsoft
Entwicklernetzwerk: Elementoperationen |
Gleichheitsoperationen | Der einzige Gleichheitsoperator hilft Ihnen bei der Bestimmung, ob zwei
Folgen sind gleich (die Anzahl der Elemente und der Inhalt jedes Elements sind gleich). |
SequenceEqual | Microsoft
Entwicklernetzwerk: Gleichheitsoperationen |
Filtern von Daten | Mithilfe der Filteroperatoren können Sie Elemente in
einer Sequenz basierend auf bestimmten Kriterien ausschließen oder einschließen. |
OfType and Where | Microsoft
Entwicklernetzwerk: Filtern von Daten |
Generierungsoperationen | Die Generierungsoperatoren erstellen eine neue Sequenz basierend auf den von Ihnen angegebenen
-Kriterien. |
DefaultIfEmpty, Empty, Range und
Repeat |
Microsoft
Entwicklernetzwerk: Generierungsoperationen |
Gruppierungsdaten | Mit den Gruppierungsoperatoren können Sie Daten nach einem bestimmten
Merkmal sortieren, z. als erster Buchstabe in einer Gruppe von Zeichenketten. |
GroupBy und ToLookup | Microsoft
Entwicklernetzwerk: Gruppieren von Daten |
Joinoperationen | Die Verbindungsoperatoren akzeptieren zwei oder mehr Sequenzen als Eingabe und
erstellen eine einzelne Ausgabesequenz basierend auf einem bestimmten Join type und die Join-Kriterien. |
Join und GroupJoin | Microsoft
Entwicklernetzwerk: Join-Operationen |
Daten partitionieren | Mit den Partitionierungsoperatoren können Sie eine Sequenz nach
sortieren, um spezifische Informationen zu finden. |
Skip, SkipWhile, Take und
TakeWhile |
Microsoft
Entwicklernetzwerk: Daten partitionieren |
Projektionsoperationen | Die Projektionsoperatoren erstellen basierend auf der von Ihnen erstellten Abfrage
einen neuen Typ.. |
Auswählen und Auswählen vieler | Microsoft
Entwicklernetzwerk: Projektionsoperationen |
Quantifizierungsoperationen | Mit den Quantoroperatoren können Sie Elemente basierend auf
spezifischen Kriterien auswählen. Mit diesen Operatoren können Sie bestimmen, ob keine, ein oder mehr als ein Element das ausgewählte -Kriterium erfüllt. |
Alle, Alle,
und Enthält |
Microsoft
Entwicklernetzwerk: Quantifiziereroperationen |
Festlegen von Operationen | Die Mengenoperatoren erstellen Mengen. Denken Sie an die Mengenarithmetik, die Sie
in der Schule durchgeführt haben. |
Distinct, Except, Intersect,
und Union |
Microsoft
Entwicklernetzwerk: Set Operations |
Daten sortieren | Mit den Sortieroperatoren können Sie eine Sequenz in eine bestimmte
-Reihenfolge setzen. |
OrderBy, OrderByDescending, ThenBy, ThenByDescending und Reverse | Microsoft
Entwicklernetzwerk: Daten sortieren |
Microsoft LINQ Resources
Es ist immer hilfreich zu wissen, wo Sie zusätzliche Informationen und Tools und Erweiterungen finden können. wenn Sie Ihre Language Integrated Query (LINQ) -Anwendungen erstellen. Hier finden Sie eine Liste hilfreicher Microsoft-Ressourcen für LINQ.
Microsoft Developer Network
Das Microsoft Developer Network (MSDN) hat immer das Basismaterial für alle Microsoft-Entwicklungsprodukte bereitgestellt. Sie werden dort ein ganzes Informationslager finden - mehr als irgend ein menschliches Wesen wahrscheinlich im Leben lesen kann. Folglich müssen Sie die Informationen sorgfältig durchsuchen oder Sie werden schnell im MSDN-Labyrinth verloren gehen. Die Haupt-MSDN-Site für die Arbeit mit LINQ bietet Ihnen Nachrichten, Ressourcen und Zugriff auf andere Informationen, z. B. Beispiele.
Microsoft-Blogs
Microsoft möchte, dass Sie wissen, wie Sie mit LINQ arbeiten. In der Vergangenheit finden Sie viele der Informationen, die Sie auf MSDN benötigen. Die MSDN-Website ist immer noch ein guter Ort, aber viele Microsoft-Entwickler beschwerten sich, dass es ein bisschen zu formell war (die Artikel sind in einigen Fällen ziemlich schwierig zu verstehen) und es gab keine Gelegenheit, mit den Autoren zu interagieren. Die Microsoft-Blogs bieten eine freundlichere Umgebung zum Abrufen von Informationen, wo Sie tatsächlich mit dem Autor übereinstimmen können. Hier sind einige Blogs, die Sie bei der Arbeit mit LINQ besuchen sollten:
-
Beth Massi: Die Güte teilen, die Visual Basic (VB) ist
-
Charlie Calverts Community Blog
-
WRIJUs BLOG:. NET und Everything
Die meisten dieser Blogs sind generisch - sie behandeln alle Programmierprobleme. Folglich finden Sie in jedem Blog eine Themenmischung. Der Autor kann das Dateisystem in einem Beitrag und LINQ auf einem anderen Beitrag diskutieren. Jeder enthält LINQ-spezifische Einträge, nach denen Sie mithilfe der Suchfunktionen im Blog suchen können. Obwohl Charlie Calvert Microsoft verlassen hat, enthält sein Blog eine Fülle allgemeiner LINQ-Informationen.
Microsoft-Foren
Wenn Sie nicht glauben, dass Sie über einen Blog genügend Interaktion mit Microsoft erhalten, werden die Microsoft-Foren häufig von Microsoft-Mitarbeitern besucht. Wenn Sie eine Nachricht in das richtige Forum hochladen, erhalten Sie professionelle Hilfe oder zumindest eine kompetente Hilfe von einem anderen Forummitglied. Die meisten Entwickler verlassen sich bei grundlegenden Fragen zu LINQ auf das MSDN-Forum. Sie können eine allgemeine Liste der Foren in der Microsoft Community anzeigen. Vergessen Sie nicht, das sprachspezifische Forum für Visual Basic zu testen. NETZ.