在C#中,如何按列表大小对列表进行分组后如何排序?

时间:2014-08-19 02:08:59

标签: c# linq sorting

假设我有一系列汽车对象

3辆蓝色车厢 10黄色车
5辆红色汽车

List<Car> cars = GetList();
var groupBy = cars.GroupBy(r=>r.Color);

我现在想要按降序对groupBy分组集合进行排序,这样我首先得到黄色汽车,然后是红色,然后是蓝色,当我遍历列表时

按分组列表中该条目的集合大小对分组列表进行排序的正确方法是什么?

2 个答案:

答案 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());