ホームページ >バックエンド開発 >C++ >GroupByでLINQの製品を正しくグループ化、合計、およびカウントする方法は?

GroupByでLINQの製品を正しくグループ化、合計、およびカウントする方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-24 17:01:09806ブラウズ

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

linqを使用して製品をグループ化、調和、数えます。

問題の説明

製品コードに従ってグループ化する必要がある製品コレクションがあります。目標は、オブジェクト、製品名、製品の数、および各製品コードの合計価格を作成することです。

コードフラグメント(エラー例)

初期コードは、

を使用して製品コードに従ってグループ化し、各グループの合計を計算します。

問題はこのコードは正しく計算されますが、すべての製品のカウントは常に1として表示されます。

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>

予想される結果

solution

問題は、各グループの各プロジェクトを確認するために

の使用にあります。 正しいアプローチは次のとおりです
<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>

同じコードを持つ製品の名前が同じであると仮定します。を使用して製品名を取得できます。 展示は結果セットをセットし、エラーをカウントし、

はグループ化後に結果を直接操作します。
<code>Product1: count 2   - Price:13 (2x6.5)
Product2: count 1   - Price:12 (1x12)</code>

この復活は、画像を維持し、LINQの問題と解決策をより正確で簡潔な説明を提供します

以上がGroupByでLINQの製品を正しくグループ化、合計、およびカウントする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。