問題の説明
製品コードに従って梱包する必要がある製品データのセットがあります。各コードについて、製品名、製品の数量、総価格を含むオブジェクトを返す必要があります。この目標を達成するためにLINQのGroupByとSelectMany機能を使用していますが、結果オブジェクトの定量的属性は常に1です。
solution問題は、Selectmany関数が各グループの各アイテムを処理するために使用されることです。この問題を解決するには、代わりに選択を使用します。
代替<code class="language-csharp">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>
データ型の改善
これらの値の性質をよりよく反映できるため、それぞれ数量と価格の属性の変更をINTと小数に変更することを検討します。
以上がLINQのGroupByを正しく使用し、合計してカウントして製品データを集約する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。