我有一个Person类,具有NameAreaID属性。

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/

10-11 17:21