C#LINQ-在IList初始值设定项中迭代多个集合

C#LINQ-在IList初始值设定项中迭代多个集合,c#,linq,C#,Linq,我有一个IDictionary集合中的数据,所以它看起来像这样(这是虚拟文本来说明形状) 这很好,很简单。现在我在一个需要从中提取数据的地方;由于某些原因,我需要在初始值设定项中执行此操作,而不是在方法中,因此我不能使用任何类型的变量。(位于RavenDB变压器内部) 我知道如何从一个特定的收藏中取出所有的物品,就像这样 results.collections["default"].Sum( ... ) results.collections["default2"].Sum( ... ) 但是

我有一个
IDictionary
集合中的数据,所以它看起来像这样(这是虚拟文本来说明形状)

这很好,很简单。现在我在一个需要从中提取数据的地方;由于某些原因,我需要在初始值设定项中执行此操作,而不是在方法中,因此我不能使用任何类型的变量。(位于
RavenDB
变压器内部)

我知道如何从一个特定的收藏中取出所有的物品,就像这样

results.collections["default"].Sum( ... )
results.collections["default2"].Sum( ... )
但是,有没有一种
LINQ
友好的方法来做到这一点,同时选择我要从中提取的


基本上,在本例中,我希望对所有内容的字段求和并得到结果,而无需硬编码到“default”和“default2”的路径,但不是作为一个干净的LINQ函数在一行中使用default3

我知道这在Linq2Obj中是有效的:

var collection = new Dictionary<string, IList<AppObject>>();
    collection.Add("Default", new List<AppObject>() { new AppObject() {Value=1}});
    collection.Add("Default2", new List<AppObject>() { new AppObject() {Value=2}});     
    collection.Sum(l => l.Value.Sum(v => v.Value)); // this line of code should do the job.
var collection=newdictionary();
Add(“默认”,new List(){new AppObject(){Value=1}});
Add(“Default2”,new List(){new AppObject(){Value=2}});
collection.Sum(l=>l.Value.Sum(v=>v.Value));//这行代码应该可以完成这项工作。

您可以使用SelectMany执行以下操作:

results.collections.SelectMany(p => p.Value).Sum(p => p.ValueToSum);

谢谢我试试看。
results.collections.SelectMany(p => p.Value).Sum(p => p.ValueToSum);