我List<object>在object包含的地方有这样的东西Cat,Type和Items.
Cat | Type | Items
--------------------
A | P | 3
A | Q | 4
A | R | 2
A | P | 1
A | Q | 5
B | P | 2
B | Q | 1
B | R | 3
B | P | 9
Run Code Online (Sandbox Code Playgroud)
我想要做的是计算类型的平均项,所以产生这样的东西:
Cat | Type | Items
--------------------
A | P | 2
A | Q | 4.5
A | R | 2
B | P | 5.5
B | Q | 3
B | R | 5
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,平均项目是针对类型计算的,这是最好的方法吗?
假设输入是在一个名为listtype 的变量中提供的IEnumerable<Blah>(例如,包含数据库查询结果,a List<Blah>,数组等等),并且这Blah是一个带有字段或属性的类Cat,Type并且Items:
var result = list.GroupBy(entry => new { entry.Cat, entry.Type })
.Select(group => new { group.Key.Cat, group.Key.Type,
Items = group.Average(e => e.Items) })
Run Code Online (Sandbox Code Playgroud)