如何按计数对列表进行排序?
在C#中:
List<List> SectionList = new List<List>();
SectionList包含每个子列表在其包含的点数不同的点的列表。
我想弄清楚的是如何按子列表的计数按降序对SectionList进行排序。
因此,如果SectionList有3个点列表,则在排序后,SectionList [0]将包含所有3个列表的最高Count值。
谢谢,神话
这应该工作:
SectionList.Sort((a,b) => a.Count - b.Count);
(a,b) => a.Count - b.Count
是比较代表。 Sort
方法使用要比较的列表对调用它,如果a
小于b
则返回负数的委托,如果a
长于b
则返回正数,当两个列表具有相同长度时返回零。
var sortedList = SectionList.OrderByDescending(l=>l.Count()).ToList();
您可以创建自定义比较器。
public class ListCountComparer : IComparer { public int Compare(IList x, IList y) { return x.Count.CompareTo(y.Count); } }
然后你可以像这样对列表进行排序:
SectionList.Sort(new ListCountComparer());
希望这可以帮助 :)