我在我的LINQ Group By子句中使用Dictionary對象。LINQ與GroupBy使用字典對象
只要我沒有重複,它就能正常工作產品名稱中的結果。
但是,它在GroupBy查詢遇到重複的項目名稱時失敗。
我不確定我是否正確使用了GroupBy子句中的Dictionary對象?請指教。
這是我的模型
public class Item
{
public string CustomerName { get; set; }
public Dictionary<string, float?> ItemCost { get; set; }
public float? Cost{ get; set; }
public float? TotalCost{ get; set; }
}
以下是我的選擇查詢(LINQ)用的GroupBy
var result = myFilteredQuery
.Select(x => new
{
ItemName = x.Item.Name,
Cost= x.Item.Cost,
CustomerName = x.Item.Customer.Name,
}).ToList();
以下是我的GroupBy查詢一起。
return result .GroupBy(x => new { x.CustomerName})
.Select(x => new CostByItem
{
CustomerName = x.Key.CustomerName,
LineItem = x.ToDictionary(y => y.ItemName, y => y.Cost),
TotalCost= x.Sum(y => y.Cost)
}).ToList();
p.s.我試圖發送創建數據結構Group By Customer,並且比每個客戶字典對象項目成本(項目名稱,項目成本)和該客戶的總成本下。
失敗?您收到的任何錯誤消息?請具體說明。 –
我收到此錯誤「已添加具有相同密鑰的項目。」 – immirza
很明顯!您正在通過'CustomerName'而不是'ItemName'進行分組,因此如果任何客戶下有任何重複的ItemName,都會出現該錯誤。 –