Heim >Backend-Entwicklung >C++ >Wie gruppiert ich Daten nach mehreren Spalten mit LINQ?
In SQL können Sie die Gruppe nach Klausel basierend auf mehreren Spalten verwenden. Auf diese Weise können Sie Daten basierend auf der eindeutigen Kombination der angegebenen Spalte aggregieren.
lINQ liefert einen ähnlichen Gruppierungsmechanismus mit der Gruppenby -Erweiterungsmethode. Im Gegensatz zu SQL verarbeitet LINQ jedoch Objekte, die eine Möglichkeit erfordert, die Gruppenstandards zu identifizieren.
Um mehrere Spalten in LINQ zu drücken, können Sie den anonymen Typ verwenden, um die Gruppenschlüssel darzustellen. Anonymer Typ ist ein temporärer und unbenannter Typ, mit dem Sie das Objekt basierend auf einer Gruppe bekannter Attribute gruppieren können.
Betrachten Sie die folgende SQL -Abfrage:
Um diese Abfrage in LINQ zu konvertieren, können Sie den anonymen Typ verwenden, wie unten gezeigt:
<code class="language-sql">SELECT * FROM <table> GROUP BY <column1>, <column2></code>
Dieser Code wird an den Zeilen in der Tabelle basierend auf den Werten von Spalte1 und Spalte2 gezahlt. Die generierten Gruppenvariablen sind iGrouping & lt;
<code class="language-csharp">var groupedData = table.GroupBy(x => new { x.Column1, x.Column2 });</code>
Dann können Sie diese Gruppen itererieren und Daten nach Bedarf aggregieren, was der Methode ähnelt, die Sie in SQL:
ausführen:
<code class="language-csharp">foreach (var group in groupedData) { Console.WriteLine($"Group key: {group.Key}"); Console.WriteLine("QuantityBreakdown:"); foreach (var row in group) { Console.WriteLine($" - MaterialID: {row.MaterialID}, ProductID: {row.ProductID}, Quantity: {row.Quantity}"); } }</code>Dieser Code wird Gruppenschlüssel (anonyme Typen mit Spalten1- und Spalten2 -Werten) und jede Zeile in jeder Gruppe.
Das obige ist der detaillierte Inhalt vonWie gruppiert ich Daten nach mehreren Spalten mit LINQ?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!