Jon*_*Jon 2 .net c# linq ienumerable c#-3.0
我有一个Person班级,有Name和AreaID属性.
public class Person
{
public string Name;
public int AreaID;
// snip
}
Run Code Online (Sandbox Code Playgroud)
我有List<Person>可能在列表中有数百个Person对象.例如,AreaID = 1的100人和AreaID = 2的100人
我想返回AreaID的不同列表以及有多少人拥有该AreaID.
例如,AreaID = 1 Persons = 100 AreaID = 2 Persons = 100
使用GroupBy方法.
var list = ...list of Persons...
var areas = list.GroupBy( p => p.AreaID )
.Select( g => new {
AreaID = g.Key,
Count = g.Count()
});
Run Code Online (Sandbox Code Playgroud)
看起来您想要按区域ID进行分组:
var groups = from person in persons
group 1 by person.AreaID into area
select new { AreaID = area.Key, Persons = area.Count() };
Run Code Online (Sandbox Code Playgroud)
我正在使用"组1"来表示我真的不关心每个组中的数据 - 只有计数和密钥.
这是低效的,因为它必须为了分组而缓冲所有结果 - 你能够在.NET 4.0中使用Reactive LINQ来更有效地执行此操作,或者如果你愿意,你当然可以使用Push LINQ.然后,对于相对较小的数据集,它可能无关紧要:)
| 归档时间: |
|
| 查看次数: |
1132 次 |
| 最近记录: |