LINQ - Abfrageoperatoren
Eine Reihe von Erweiterungsmethoden, die ein Abfragemuster bilden, werden als LINQ-Standardabfrageoperatoren bezeichnet. Als Bausteine für LINQ-Abfrageausdrücke bieten diese Operatoren eine Reihe von Abfragefunktionen wie Filtern, Sortieren, Projektieren, Aggregieren usw.
LINQ-Standardabfrageoperatoren können aufgrund ihrer Funktionalität in die folgenden eingeteilt werden.
- Filteroperatoren
- Operatoren beitreten
- Projektionsoperationen
- Sortieroperatoren
- Gruppieren von Operatoren
- Conversions
- Concatenation
- Aggregation
- Quantifiziereroperationen
- Partitionsoperationen
- Generierungsvorgänge
- Operationen einstellen
- Equality
- Elementoperatoren
Filteroperatoren
Das Filtern ist eine Operation zum Einschränken der Ergebnismenge, sodass nur Elemente ausgewählt werden, die eine bestimmte Bedingung erfüllen.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
wo | Filtern Sie Werte basierend auf einer Prädikatfunktion | wo | Wo |
OfType | Filtern Sie Werte basierend auf ihrer Fähigkeit, ein bestimmter Typ zu sein | Unzutreffend | Unzutreffend |
Operatoren beitreten
Joining bezieht sich auf eine Operation, bei der Datenquellen mit schwer zu verfolgenden Beziehungen auf direkte Weise als Ziel ausgewählt werden.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
Beitreten | Der Bediener verbindet zwei Sequenzen auf der Basis übereinstimmender Schlüssel | mitmachen… mit… am… gleich… | Von x In…, y In… Wobei xa = ya |
GroupJoin | Verbinden Sie zwei Sequenzen und gruppieren Sie die passenden Elemente | mach mit… mit… am… gleich… mit… | Group Join… In… On… |
Projektionsoperationen
Projektion ist eine Operation, bei der ein Objekt in eine völlig neue Form mit nur bestimmten Eigenschaften umgewandelt wird.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
Wählen | Der Operator projiziert Werte auf Basis einer Transformationsfunktion | wählen | Wählen |
SelectMany | Der Operator projiziert die Folgen von Werten, die auf einer Transformationsfunktion basieren, und glättet sie zu einer einzigen Folge | Verwenden Sie mehrere from-Klauseln | Verwenden Sie mehrere From-Klauseln |
Sortieroperatoren
Eine Sortieroperation ermöglicht das Ordnen der Elemente einer Sequenz auf der Grundlage eines einzelnen oder mehrerer Attribute.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
Sortieren nach | Der Operator sortiert die Werte in aufsteigender Reihenfolge | Sortieren nach | Sortieren nach |
OrderByDescending | Der Operator sortiert die Werte in absteigender Reihenfolge | orderby ... absteigend | Bestellen nach ... absteigend |
Dann durch | Führt eine sekundäre Sortierung in aufsteigender Reihenfolge aus | Sortieren nach …, … | Sortieren nach …, … |
ThenByDescending | Führt eine sekundäre Sortierung in absteigender Reihenfolge aus | orderby…,… absteigend | Bestellen nach…,… absteigend |
Umkehren | Führt eine Umkehrung der Reihenfolge der Elemente in einer Sammlung durch | Unzutreffend | Unzutreffend |
Gruppieren von Operatoren
Die Operatoren ordnen Daten basierend auf einem gemeinsamen Attribut in einige Gruppen ein.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
Gruppiere nach | Organisieren Sie eine Folge von Elementen in Gruppen und geben Sie sie als IEnumerable-Sammlung vom Typ IGrouping <Schlüssel, Element> zurück | Gruppe… von -oder- Gruppe… von… in… | Gruppe… von… in… |
Nachschlagen | Führen Sie eine Gruppierungsoperation aus, bei der eine Folge von Schlüsselpaaren zurückgegeben wird | Unzutreffend | Unzutreffend |
Konvertierungen
Die Operatoren ändern den Typ der Eingabeobjekte und werden in einer Vielzahl von Anwendungen verwendet.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
AsEnumerable | Gibt die als IEnumerable <T> eingegebene Eingabe zurück | Unzutreffend | Unzutreffend |
AsQueryable | Eine (generische) IEnumerable wird in eine (generische) IQueryable konvertiert | Unzutreffend | Unzutreffend |
Besetzung | Führt das Casting von Elementen einer Sammlung in einen bestimmten Typ durch | Verwenden Sie eine explizit eingegebene Bereichsvariable. ZB: von string str in Worten | Von… als… |
OfType | Filtert Werte auf der Grundlage ihrer, abhängig von ihrer Fähigkeit, auf einen bestimmten Typ umgewandelt zu werden | Unzutreffend | Unzutreffend |
ToArray | Erzwingt die Ausführung von Abfragen und konvertiert eine Sammlung in ein Array | Unzutreffend | Unzutreffend |
ToDictionary | Stellen Sie anhand einer Tastenauswahlfunktion Elemente in ein Dictionary <TKey, TValue> und erzwingen Sie die Ausführung einer LINQ-Abfrage | Unzutreffend | Unzutreffend |
Auflisten | Erzwingt die Ausführung einer Abfrage durch Konvertieren einer Sammlung in eine Liste <T> | Unzutreffend | Unzutreffend |
Nachschlagen | Erzwingt die Ausführung einer Abfrage und fügt Elemente auf der Grundlage einer Schlüsselauswahlfunktion in einen Lookup <TKey, TElement> ein | Unzutreffend | Unzutreffend |
Verkettung
Führt eine Verkettung von zwei Sequenzen durch und ist dem Union-Operator in Bezug auf seine Funktionsweise ziemlich ähnlich, mit der Ausnahme, dass dadurch keine Duplikate entfernt werden.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
Concat | Zwei Sequenzen werden zur Bildung einer einzigen Sequenz verkettet. | Unzutreffend | Unzutreffend |
Anhäufung
Führt jede Art von gewünschter Aggregation durch und ermöglicht das Erstellen benutzerdefinierter Aggregationen in LINQ.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
Aggregat | Arbeitet mit den Werten einer Sammlung, um eine benutzerdefinierte Aggregationsoperation auszuführen | Unzutreffend | Unzutreffend |
Durchschnittlich | Der Durchschnittswert einer Sammlung von Werten wird berechnet | Unzutreffend | Aggregate… In… Into Average () |
Anzahl | Zählt die Elemente, die eine Prädikatfunktion innerhalb der Sammlung erfüllen | Unzutreffend | Aggregate… In… Into Count () |
LonCount | Zählt die Elemente, die eine Prädikatfunktion erfüllen, innerhalb einer riesigen Sammlung | Unzutreffend | Aggregieren… In… In LongCount () |
Max | Finden Sie den Maximalwert innerhalb einer Sammlung heraus | Unzutreffend | Aggregieren… In… In Max () |
Mindest | Finden Sie den Mindestwert heraus, der in einer Sammlung vorhanden ist | Unzutreffend | Aggregieren… In… In Min () |
Summe | Ermitteln Sie die Summe der Werte in einer Sammlung | Unzutreffend | Aggregieren… In… In Summe () |
Quantifiziereroperationen
Diese Operatoren geben einen booleschen Wert zurück, dh True oder False, wenn einige oder alle Elemente innerhalb einer Sequenz eine bestimmte Bedingung erfüllen.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
Alle | Gibt den Wert 'True' zurück, wenn alle Elemente einer Sequenz eine Prädikatbedingung erfüllen | Unzutreffend | Aggregieren… In… In Alle (…) |
Irgendein | Bestimmt durch Durchsuchen einer Sequenz, ob ein Element desselben eine bestimmte Bedingung erfüllt | Unzutreffend | Aggregate… In… Into Any () |
Enthält | Gibt einen 'True'-Wert zurück, wenn festgestellt wird, dass ein bestimmtes Element in einer Sequenz vorhanden ist, wenn die Sequenz dieses bestimmte Element nicht enthält, wird ein' false'-Wert zurückgegeben | Unzutreffend | Unzutreffend |
Partitionsoperatoren
Teilen Sie eine Eingabesequenz in zwei separate Abschnitte, ohne die Elemente der Sequenz neu anzuordnen und dann eines davon zurückzugeben.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
Überspringen | Überspringt eine bestimmte Anzahl von Elementen innerhalb einer Sequenz und gibt die verbleibenden zurück | Unzutreffend | Überspringen |
Überspringen | Entspricht dem von Überspringen, mit der einzigen Ausnahme, dass die Anzahl der zu überspringenden Elemente durch eine Boolesche Bedingung angegeben wird | Unzutreffend | Überspringen während |
Nehmen | Nehmen Sie eine bestimmte Anzahl von Elementen aus einer Sequenz und überspringen Sie die verbleibenden | Unzutreffend | Nehmen |
TakeWhile | Entspricht der von Take, außer dass die Anzahl der zu nehmenden Elemente durch eine boolesche Bedingung angegeben wird | Unzutreffend | Nehmen Sie während |
Generierungsvorgänge
Eine neue Wertesequenz wird von Generationsoperatoren erstellt.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
DefaultIfEmpty | Wenn Sie auf eine leere Sequenz angewendet werden, generieren Sie ein Standardelement innerhalb einer Sequenz | Unzutreffend | Unzutreffend |
Leer | Gibt eine leere Folge von Werten zurück und ist der einfachste Generationsoperator | Unzutreffend | Unzutreffend |
Angebot | Erzeugt eine Sammlung mit einer Folge von Ganzzahlen oder Zahlen | Unzutreffend | Unzutreffend |
Wiederholen | Erzeugt eine Sequenz mit wiederholten Werten einer bestimmten Länge | Unzutreffend | Unzutreffend |
Operationen einstellen
Es gibt vier Operatoren für die festgelegten Operationen, die jeweils ein Ergebnis basierend auf verschiedenen Kriterien liefern.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
Deutlich | Erstellt eine Liste eindeutiger Werte aus einer Sammlung, indem gegebenenfalls doppelte Daten gefiltert werden | Unzutreffend | Deutlich |
Außer | Vergleicht die Werte von zwei Sammlungen und gibt diejenigen aus einer Sammlung zurück, die sich nicht in der anderen Sammlung befinden | Unzutreffend | Unzutreffend |
Sich schneiden | Gibt den Wertesatz zurück, der in zwei separaten Sammlungen als identisch befunden wurde | Unzutreffend | Unzutreffend |
Union | Kombiniert den Inhalt von zwei verschiedenen Sammlungen zu einer einzigen Liste, auch ohne doppelten Inhalt | Unzutreffend | Unzutreffend |
Gleichberechtigung
Vergleicht zwei Sätze (aufzählbar) und stellt fest, ob sie genau übereinstimmen oder nicht.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
SequenceEqual | Ergibt einen Booleschen Wert, wenn festgestellt wird, dass zwei Sequenzen miteinander identisch sind | Unzutreffend | Unzutreffend |
Elementoperatoren
Mit Ausnahme von DefaultIfEmpty geben alle übrigen acht Standardoperatoren für Abfrageelemente ein einzelnes Element aus einer Auflistung zurück.
Beispiele anzeigen
Operator | Beschreibung | Syntax des C # -Abfrageausdrucks | Syntax für VB-Abfrageausdrücke |
---|---|---|---|
ElementAt | Gibt ein Element zurück, das in einem bestimmten Index in einer Sammlung vorhanden ist | Unzutreffend | Unzutreffend |
ElementAtOrDefault | Entspricht ElementAt, außer dass es auch einen Standardwert zurückgibt, falls der spezifische Index außerhalb des Bereichs liegt | Unzutreffend | Unzutreffend |
Zuerst | Ruft das erste Element innerhalb einer Sammlung oder das erste Element ab, das eine bestimmte Bedingung erfüllt | Unzutreffend | Unzutreffend |
FirstOrDefault | Entspricht First, mit der Ausnahme, dass auch ein Standardwert zurückgegeben wird, falls solche Elemente nicht vorhanden sind | Unzutreffend | Unzutreffend |
Zuletzt | Ruft das letzte in einer Sammlung vorhandene Element oder das letzte Element ab, das eine bestimmte Bedingung erfüllt | Unzutreffend | Unzutreffend |
LastOrDefault | Entspricht Last, mit der Ausnahme, dass auch ein Standardwert zurückgegeben wird, falls kein solches Element vorhanden ist | Unzutreffend | Unzutreffend |
Single | Gibt das einzelne Element einer Sammlung oder das einzelne Element zurück, das eine bestimmte Bedingung erfüllt | Unzutreffend | Unzutreffend |
SingleOrDefault | Entspricht Single, mit der Ausnahme, dass auch ein Standardwert zurückgegeben wird, wenn kein solches einzelnes Element vorhanden ist | Unzutreffend | Unzutreffend |
DefaultIfEmpty | Gibt einen Standardwert zurück, wenn die Sammlung oder Liste leer oder null ist | Unzutreffend | Unzutreffend |