C# - 我知道我可以在LINQ中做到这一点,但我无法让它工作

时间:2009-05-05 05:53:29

标签: c# linq

我得到了一个RegionGroup对象列表,其中包含两个属性:int“number”和list<> “地区”。

我需要为每个数字输出一组Region对象的分布。 例如,给定:

[地区1] - 数字:1 - 列表<>有5名成员

[地区2] - 数字:3 - 列表<>有2名成员

[地区3] - 数字:4 - 列表<>有9名成员

[地区4] - 数字:1 - 列表<>有5名成员

[地区5] - 数字:3 - 列表<>有4名成员

我需要得到类似的东西:

数字:1 - 共10名成员

数字:3 - 共6名成员

数字:4 - 共9名成员

我一直在搞乱各种教程,我想我需要使用群组,但我无法完成任何工作。

有任何帮助吗?谢谢!

2 个答案:

答案 0 :(得分:1)

这个类似问题的答案可能有所帮助:

Linq Query with SUM and ORDER BY

或者这个

C# List<> GroupBy 2 Values

答案 1 :(得分:0)

您需要按地区编号分组,然后获取列表中的成员总数。

这样的事情(未经测试):

var regionCounts = from region in RegionGroups
                   group region by region.number into g
                   select new {number = g.Key, 
                               regions = g.Sum(r=>r.Regions.Count)};