首頁 > 後端開發 > C++ > 如何正確使用LINQ GroupBy、Sum和Count來聚合產品資料?

如何正確使用LINQ GroupBy、Sum和Count來聚合產品資料?

Linda Hamilton
發布: 2025-01-24 16:52:16
原創
333 人瀏覽過

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

LINQ:GroupBy、Sum和Count

這段代碼的目標是按產品代碼對產品集合進行分組,並返回一個包含產品名稱、每個代碼的產品數量和每個產品的總價格的對象。

示例數據包含三個產品:

<code>{"p1", 6.5, "Product1"}, {"p1", 6.5, "Product1"}, {"p2", 12, "Product2"}</code>
登入後複製

預期結果如下:

<code>Product1: count 2   - Price:13 (2x6.5)
Product2: count 1   - Price:12 (1x12)</code>
登入後複製
登入後複製

但是,代碼生成的計數值不正確,每個產品始終顯示為1。

問題在於錯誤地使用了SelectMany()方法。代碼應該使用Select()方法,這可以簡化表達式:

<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>
登入後複製

此修改更正了該問題並生成了所需的計數值:

<code>Product1: count 2   - Price:13 (2x6.5)
Product2: count 1   - Price:12 (1x12)</code>
登入後複製
登入後複製

以上是如何正確使用LINQ GroupBy、Sum和Count來聚合產品資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板