C# Linq 分组查询

3
如何使用 LINQ 根据一个人的财富来计数、分组和排序以下列表?
        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
2个回答

8
 var personMoney = names.GroupBy(x=>x.Name)
                   .Select(x=>new {Name = x.Key, AllMoney = x.Sum(y=>y.Money)})
                   .OrderByDescending(x=>x.AllMoney).ToList();

7
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) }

1
挑剔一下:order-by与示例输出相矛盾。 - H H
2
同时,根据样本数据,您应编写以下代码:Amount = g.Sum(o => o.Money)。 - Saeed Amiri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接