首頁 >後端開發 >C++ >LINQ Groupby:儘管多次出現,為什麼我的計數總是1?

LINQ Groupby:儘管多次出現,為什麼我的計數總是1?

DDD
DDD原創
2025-01-24 16:47:10541瀏覽

Linq GroupBy: Why is my Count Always 1 Despite Multiple Occurrences?

使用LINQ進行分組、求和和計數

問題:

給定一個對象集合,按特定屬性分組,計算另一個屬性的總和,併計算每個組的出現次數。問題在於,即使源集合中存在多次出現,計數始終為 1。

解決方案:

計數計算錯誤的原因在於代碼中使用了 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>

此代碼使用 First() 獲取產品名稱,假設產品代碼一致。建議將 Quantity 和 Price 分別定義為整數和十進制類型。

以上是LINQ Groupby:儘管多次出現,為什麼我的計數總是1?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn