我遇到这种情况:
Data: 28/11/2016 00:34:55 Idade: 20 Name:WSA
Data: 28/11/2016 00:34:55 Idade: 21 Name:WSA
Data: 09/08/2007 00:00:00 Idade: 10 Name:Wdddd
Data: 09/08/2007 00:00:00 Idade: 11 Name:Wdddd
我不知道如何解决每个名字选择最高的“Idade”值,对于上面的例子我需要这个作为解决方案
Data: 28/11/2016 00:34:55 Idade: 21 Name:WSA
Data: 09/08/2007 00:00:00 Idade: 11 Name:Wdddd
这是我的代码:
var persons = new List<Person>()
{
new Person { Data = DateTime.Now, Idade = 20 , Name = "WSA" },
new Person { Data = DateTime.Now, Idade = 21 , Name = "WSA" },
new Person { Data = new DateTime(2007,08,09), Idade = 10 , Name = "Wdddd" },
new Person { Data = new DateTime(2007,08,09), Idade = 11 , Name = "Wdddd" },
};
///TODO LINQ here
var _persons = from p in persons select p;
foreach (var item in _persons)
{
Console.WriteLine(string.Format("Data: {0} Idade: {1} Name:{2}", item.Data, item.Idade, item.Name));
}
答案 0 :(得分:0)
使用group by
:
from p in persons
group p by p.Name into grp
select grp.OrderByDescending(x => x.Idade).First();