C# 如何使用LINQ将字典值和嵌套到列表中?
我有一个产品对象声明为:C# 如何使用LINQ将字典值和嵌套到列表中?,c#,linq,C#,Linq,我有一个产品对象声明为: Product { int ProductID; string ProductName; int ProductTypeID; string ProductTypeName; int UnitsSold Dictionary <string, int> UnitsSoldByYear; } 谢谢你的帮助 要总结您的内部字典,只需执行以下操作: DictSum = pt.Select(x => x.UnitsSold
Product {
int ProductID;
string ProductName;
int ProductTypeID;
string ProductTypeName;
int UnitsSold
Dictionary <string, int> UnitsSoldByYear;
}
谢谢你的帮助 要总结您的内部字典,只需执行以下操作:
DictSum = pt.Select(x => x.UnitsSoldByYear.Values.Sum()).Sum()
或者同等地:
DictSum = pt.Sum(x => x.UnitsSoldByYear.Values.Sum())
编辑:
根据OP注释,这将创建一个字典,其中包含每个键的总和:
DictSum = pt.SelectMany(kvp => kvp.UnitsSoldByYear)
.GroupBy(kvp => kvp.Key)
.ToDictionary(grp => grp.Key,grp => grp.Sum(kvp => kvp.Value))
谢谢你的回答。但我需要的是一本字典,每把钥匙都有一个总数。我认为DictSum是所有键的总和,不是吗?
DictSum = pt.SelectMany(kvp => kvp.UnitsSoldByYear)
.GroupBy(kvp => kvp.Key)
.ToDictionary(grp => grp.Key,grp => grp.Sum(kvp => kvp.Value))