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

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

Patricia Arquette
リリース: 2025-01-24 17:01:09
オリジナル
799 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート