Heim > Backend-Entwicklung > C++ > Wie verwende ich LINQ GroupBy, Sum und Count richtig, um Produktdaten zu aggregieren?

Wie verwende ich LINQ GroupBy, Sum und Count richtig, um Produktdaten zu aggregieren?

Linda Hamilton
Freigeben: 2025-01-24 16:52:16
Original
333 Leute haben es durchsucht

How to Correctly Use LINQ GroupBy, Sum, and Count to Aggregate Product Data?

LINQ: GroupBy, Sum und Count

Das Ziel dieses Codes besteht darin, eine Sammlung von Produkten nach Produktcode zu gruppieren und ein Objekt zurückzugeben, das den Produktnamen, die Produktmenge für jeden Code und den Gesamtpreis jedes Produkts enthält.

Die Beispieldaten enthalten drei Produkte:

<code>{"p1", 6.5, "Product1"}, {"p1", 6.5, "Product1"}, {"p2", 12, "Product2"}</code>
Nach dem Login kopieren

Die erwarteten Ergebnisse sind wie folgt:

<code>Product1: count 2   - Price:13 (2x6.5)
Product2: count 1   - Price:12 (1x12)</code>
Nach dem Login kopieren
Nach dem Login kopieren

Der vom Code generierte Zählwert ist jedoch falsch und zeigt immer 1 für jedes Produkt an.

Das Problem besteht darin, dass die SelectMany()-Methode falsch verwendet wird. Der Code sollte die Select()-Methode verwenden, die Ausdrücke vereinfacht:

<code>List<ResultLine> result = Lines
    .GroupBy(l => l.ProductCode)
    .Select(cl => new ResultLine
            {
                ProductName = cl.First().Name,
                Quantity = cl.Count().ToString(),
                Price = cl.Sum(c => c.Price).ToString(),
            }).ToList();</code>
Nach dem Login kopieren

Diese Änderung behebt das Problem und erzeugt den gewünschten Zählwert:

<code>Product1: count 2   - Price:13 (2x6.5)
Product2: count 1   - Price:12 (1x12)</code>
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie verwende ich LINQ GroupBy, Sum und Count richtig, um Produktdaten zu aggregieren?. 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