Maison >développement back-end >C++ >Comment regrouper les données par plusieurs colonnes dans LINQ?
Dans SQL, vous pouvez utiliser des clauses
pour regrouper les données en fonction de plusieurs colonnes. Par exemple:
GROUP BY
<code class="language-sql">SELECT * FROM <tablename> GROUP BY <column1>,<column2></code>
Utilisez un type anonyme
Une méthode consiste à utiliser le type anonyme. Ce qui suit est un exemple:
Ce code est groupé en fonction des attributs
et<code class="language-csharp">var groupedData = x.GroupBy(x => new { x.Column1, x.Column2 });</code>des éléments de la séquence
pour créer un type anonyme pour chaque combinaison unique de valeur. x
Column1
Exemple de données Column2
Considérez la structure de données suivante:
et la déclaration d'insertion suivante:
<code class="language-csharp">public class QuantityBreakdown { public int MaterialID { get; set; } public int ProductID { get; set; } public float Quantity { get; set; } }</code>Vous pouvez utiliser le code suivant pour convertir cela en linq:
<code class="language-sql">INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity) SELECT MaterialID, ProductID, SUM(Quantity) FROM @Transactions GROUP BY MaterialID, ProductID</code>Cette expression linq est payée selon
et
, puis calcule la somme de la valeur<code class="language-csharp">var groupedTransactions = transactions .GroupBy(t => new { t.MaterialID, t.ProductID }) .Select(g => new QuantityBreakdown { MaterialID = g.Key.MaterialID, ProductID = g.Key.ProductID, Quantity = g.Sum(t => t.Quantity) });</code>de chaque groupe.
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!