Maison > développement back-end > C++ > Comment regrouper les données par plusieurs colonnes à l'aide de LINQ?

Comment regrouper les données par plusieurs colonnes à l'aide de LINQ?

Susan Sarandon
Libérer: 2025-01-31 15:36:14
original
789 Les gens l'ont consulté

How to Group Data by Multiple Columns Using LINQ?

linq utilise LINQ en fonction de plusieurs groupes de données de groupe

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal