Maison > développement back-end > C++ > Comment regrouper les données par plusieurs colonnes dans LINQ?

Comment regrouper les données par plusieurs colonnes dans LINQ?

DDD
Libérer: 2025-01-31 15:31:09
original
268 Les gens l'ont consulté

How to Group Data by Multiple Columns in LINQ?

Linq plusieurs groupes de groupes en détail

Dans SQL, vous pouvez utiliser des clauses

pour regrouper les données en fonction de plusieurs colonnes. Par exemple:

GROUP BY

Comment implémenter des fonctions similaires dans LINQ?
SELECT * FROM <tablename> GROUP BY <column1>,<column2>
Copier après la connexion

<> 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
var groupedData = x.GroupBy(x => new { x.Column1, x.Column2 });
Copier après la connexion
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:

public class QuantityBreakdown
{
    public int MaterialID { get; set; }
    public int ProductID { get; set; }
    public float Quantity { get; set; }
}
Copier après la connexion
Vous pouvez utiliser le code suivant pour convertir cela en linq:

INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity)
SELECT MaterialID, ProductID, SUM(Quantity)
FROM @Transactions
GROUP BY MaterialID, ProductID
Copier après la connexion
Cette expression linq est payée selon

et

, puis calcule la somme de la valeur
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)
    });
Copier après la connexion
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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal