在列表<object> </object>中查找特定属性值的频率

时间:2014-05-19 05:56:15

标签: c# linq list frequency

如何找到Age的{​​{1}}属性的频率?

List<Person>

所以我希望我的var people = new List<Person> { new Person {Name = "Jonh", Age = 10}, new Person {Name = "Jack", Age = 12}, new Person {Name = "Sara", Age = 10}, new Person {Name = "Dave", Age = 10}, new Person {Name = "Jude", Age = 12} }; class Person { public string Name { get; set; } public int Age { get; set; } public int Frequency { get; set; } } 个对象更新为Person值。

Frequency

2 个答案:

答案 0 :(得分:4)

var countByAge = people.GroupBy(x => x.Age)
                       .ToDictionary(g => g.Key, g => g.Count());

foreach(var person in people)
{
    person.Frequency = countByAge[person.Age];
}

答案 1 :(得分:1)

尝试这样:

foreach(var item in people)
{
  item.Frequency = people.Count(x=>x.Age == item.Age);
}
相关问题