使用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中文網其他相關文章!