Heim > Backend-Entwicklung > C++ > Wie gruppiert, summiert und zählt man Produkte in LINQ mit GroupBy richtig?

Wie gruppiert, summiert und zählt man Produkte in LINQ mit GroupBy richtig?

Patricia Arquette
Freigeben: 2025-01-24 17:01:09
Original
798 Leute haben es durchsucht

How to Correctly Group, Sum, and Count Products in LINQ with GroupBy?

LINQ verwenden, um das Produkt zu gruppieren, zu harmonisieren und zu zählen: GroupBy -Methode

Problembeschreibung

Wir haben eine Produktsammlung, die nach dem Produktcode gruppiert werden muss. Ziel ist es, ein Objekt, den Produktnamen, die Anzahl der Produkte und den Gesamtpreis jedes Produktcodes zu erstellen.

Codefragment (Fehlerbeispiel)

Der anfängliche Code verwendet , um nach dem Produktcode zu gruppieren, und berechnet dann die Summe jeder Gruppe.

Das Problem befindet sich GroupBy

<code class="language-csharp">List<resultline> result = Lines
    .GroupBy(l => l.ProductCode)
    .SelectMany(cl => cl.Select(
        csLine => new ResultLine
        {
            ProductName = csLine.Name,
            Quantity = cl.Count().ToString(),
            Price = cl.Sum(c => c.Price).ToString(),
        })).ToList<resultline>();</code>
Nach dem Login kopieren
Obwohl dieser Code korrekt berechnet wird, wird die Anzahl aller Produkte immer als 1 angezeigt.

Beispieldaten

Die erwarteten Ergebnisse

Lösung
<code class="language-csharp">List<cartline> Lines = new List<cartline>();
Lines.Add(new CartLine() { ProductCode = "p1", Price = 6.5M, Name = "Product1" });
Lines.Add(new CartLine() { ProductCode = "p1", Price = 6.5M, Name = "Product1" });
Lines.Add(new CartLine() { ProductCode = "p2", Price = 12M, Name = "Product2" });</code>
Nach dem Login kopieren

Das Problem liegt in der Verwendung von , um jedes Projekt in jeder Gruppe zu überprüfen. Der richtige Ansatz ist:

<code>Product1: count 2   - Price:13 (2x6.5)
Product2: count 1   - Price:12 (1x12)</code>
Nach dem Login kopieren
Angenommen, Produkte mit demselben Code haben denselben Namen. Wir können

verwenden, um den Produktnamen zu erhalten. Die Ausstellungsstelle setzt das Ergebnissatz fest, was zu Zählfehlern führt, und betreibt die Ergebnisse nach der Gruppierung direkt.

Diese Revisions -Antwort behält das Bild bei und liefert eine genauere Erklärung des LINQ -Problems und der Lösung

Das obige ist der detaillierte Inhalt vonWie gruppiert, summiert und zählt man Produkte in LINQ mit GroupBy richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage