C# 林克集团
我如何使用linq根据个人资金对以下列表进行计数、分组和排序C# 林克集团,c#,linq,C#,Linq,我如何使用linq根据个人资金对以下列表进行计数、分组和排序 Person[] names = { new Person{ Name = "Harris", Money = 100 }, new Person{ Name = "David", Money = 100 }, new Person{Name = "Harris", Money = 150}
Person[] names = { new Person{ Name = "Harris", Money = 100 },
new Person{ Name = "David", Money = 100 },
new Person{Name = "Harris", Money = 150},
new Person{Name = "Mike", Money = 100},
new Person{Name = "Mike", Money = 30},
new Person{Name = "Mike", Money = 20} };
结果将是:
Harris 250
Mike 150
David 100
挑剔:order by与示例输出相矛盾。同样,根据示例数据,您应该写:Amount=g.Sum(o=>o.Money)
from p in names
group p by p.Name into g
order by g.Key
select new { Name = g.Key, Amount = g.Sum(o => o.Amount) }
var personMoney = names.GroupBy(x=>x.Name)
.Select(x=>new {Name = x.Key, AllMoney = x.Sum(y=>y.Money)})
.OrderByDescending(x=>x.AllMoney).ToList();