如何按计数对列表进行排序?

在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()); 

希望这可以帮助 :)