Dans SQL, vous pouvez utiliser la clause Group by Basing sur plusieurs colonnes. Cela vous permet d'agréger les données en fonction de la combinaison unique de la colonne spécifiée.
Linq fournit un mécanisme de regroupement similaire avec la méthode d'extension Groupby. Cependant, contrairement à SQL, LINQ traite les objets, ce qui nécessite un moyen d'identifier les normes de groupe.
Pour appuyer sur plusieurs colonnes dans LINQ, vous pouvez utiliser le type anonyme pour représenter la touche de groupe. Le type anonyme est un type temporaire et sans nom qui vous permet de regrouper l'objet en fonction d'un groupe d'attributs connus.
Considérons la requête SQL suivante:
Pour convertir cette requête en linq, vous pouvez utiliser un type anonyme, comme indiqué ci-dessous:
<code class="language-sql">SELECT * FROM <table> GROUP BY <column1>, <column2></code>
Ce code est payé aux lignes du tableau en fonction des valeurs de Column1 et Column2. Les variables GroupData générées sont iGrouping & lt; Tkey, Tement & GT;
<code class="language-csharp">var groupedData = table.GroupBy(x => new { x.Column1, x.Column2 });</code>
Ensuite, vous pouvez répéter ces groupes et agréger les données selon les besoins, ce qui est similaire à la méthode que vous faites en SQL:
Ce code sera la clé de groupe imprimée (types anonymes avec des valeurs Colonne1 et Column2) et chaque ligne de chaque groupe.
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!