我有一个Person
类,具有Name
和AreaID
属性。
public class Person
{
public string Name;
public int AreaID;
// snip
}
我有一个
List<Person>
,可能在列表中包含数百个Person对象。例如,AreaID = 1的100个人和AreaID = 2的100个人
我想返回AreaID的不同列表以及有多少个人具有该AreaID。
例如,
AreaID = 1人= 100
AreaID = 2人= 100
最佳答案
看来您想按区域ID进行分组:
var groups = from person in persons
group 1 by person.AreaID into area
select new { AreaID = area.Key, Persons = area.Count() };
我使用“第1组”来表示我真的不在乎每个组中的数据,只关心计数和键。
这是低效率的,因为它必须缓冲所有结果以便进行分组-您可以很好地使用.NET 4.0中的Reactive LINQ来更有效地执行此操作,或者如果您愿意的话可以使用Push LINQ。再说一次,对于相对较小的数据集,这可能并不重要:)
关于c# - 使用List <Person> Distinct()返回2个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1607648/