6

C#の場合:

List<List<Point>> SectionList = new List<List<Point>>();

SectionListには、各サブリストに含まれるポイントの数が異なるポイントのリストが含まれています。

私が理解しようとしているのは、サブリストの数でSectionListを降順で並べ替える方法です。

したがって、SectionListに3つのポイントのリストがある場合、並べ替えた後、SectionList[0]には3つのリストすべての中で最も高いCount値が含まれます。

ありがとう、神話

4

3 に答える 3

12

これは機能するはずです:

SectionList.Sort((a,b) => a.Count - b.Count);

(a,b) => a.Count - b.Count比較デリゲートです。このSortメソッドは、比較するリストのペアを使用して呼び出します。デリゲートは、aより短い場合は負の数、より長いb場合は正の数、2つのリストが同じ長さの場合はゼロを返します。ab

于 2012-09-06T14:03:12.920 に答える
8
var sortedList = SectionList.OrderByDescending(l=>l.Count()).ToList();   
于 2012-09-06T14:01:37.847 に答える
3

カスタム比較子を作成できます。

public class ListCountComparer : IComparer<IList> {
    public int Compare(IList x, IList y) {
        return x.Count.CompareTo(y.Count);
    }
}

次に、リストを次のように並べ替えることができます。

SectionList.Sort(new ListCountComparer());

お役に立てれば :)

于 2012-09-06T14:07:49.887 に答える