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))