我正在尝试编写一段LINQ代码,它允许我从一个对象中提取信息,该对象基本上由包含2个字符串属性和字典属性的扩展列表组成,其中ditionary的类型为{{1} },对于List中的每一行。
我尝试了各种GroupBy,Select,Sum的组合,并且已经搜索了其他类似的东西,但所有其他与字典相关的问题似乎都有很少的复杂性。
我的目标是通过第一个字符串属性对List对象中的数据进行分组,然后对步骤1中每个分组字符串的一个Dictionary条目进行小计。然后我想从字典中取出前5个小计来自step1的分组字符串。
<string, double>
}
答案 0 :(得分:0)
你的意思是:
someEnumerable.GroupBy(e => e.SomeDictionary.Values.Sum());
答案 1 :(得分:0)
如果我正确地阅读了这个问题,你可能会找到这样的东西:
var los = new List<ListObject>();
string sumField = "Value1";
var result = los
.Where(lo => lo.string2 == "June")
.GroupBy(lo => lo.string1)
.Select(g => new {
Key = g.Key,
Total = g
.Where(x => x.Values.ContainsKey(sumField))
.Sum(s => s.Values[sumField]),
})
.OrderByDescending(t => t.Total)
.Take(5);