假设我有一系列汽车对象
3辆蓝色车厢
10黄色车
5辆红色汽车
List<Car> cars = GetList();
var groupBy = cars.GroupBy(r=>r.Color);
我现在想要按降序对groupBy分组集合进行排序,这样我首先得到黄色汽车,然后是红色,然后是蓝色,当我遍历列表时
按分组列表中该条目的集合大小对分组列表进行排序的正确方法是什么?
答案 0 :(得分:3)
var result = cars.GroupBy(r=>r.Color).OrderByDescending(g => g.Count());
答案 1 :(得分:0)
对某个集合进行分组时,您将获得一个IEnumerable<Grouping<TKey, TValue>>
集合,该集合具有Key
属性和Value
属性。 Key
是您已分组的值,Value
是按Key
分组的整个对象。您还拥有IEnumerable
的所有扩展程序。
在您的情况下,您可以调用OrderByDescending
方法从组colelction传递Count()
方法,以获取示例:
var result = cars.GroupBy(r=>r.Color).OrderByDescending(x => x.Count());