2

「layer」と呼ばれる整数変数を持つクラスがあります。これらのクラスのリストがあり、昇順で並べ替えます。どうすればこれを行うことができますか?ここで見つけた1つまたは2つのLINQメソッドを試しましたが、役に立ちませんでした。

4

3 に答える 3

5
var foos = new List<Foo>(); 
// consider this is your class with the integer variable called layer

var ordered = foos.OrderBy(f => f.layer);

Enumerable.OrderBy

于 2012-06-25T13:52:21.880 に答える
1

それを行うための他のいくつかの方法...

レイヤーがスコープ内にあると仮定します...

    List<Item> list = new List<Item>();

    list.Add(new Item(10));
    list.Add(new Item(2));
    list.Add(new Item(5));
    list.Add(new Item(18));
    list.Add(new Item(1));

    list.Sort((a, b) => { return a.Layer.CompareTo(b.Layer); });

または、IComparableインターフェイスを実装することもできます。これにより、クラスの内部で必要なものを並べ替えることができます。フィールドが常にソートしたいものであると仮定して、sort()を呼び出すだけです。

于 2012-06-25T14:12:45.963 に答える
0

これらの方法のどちらも機能しなかった後、私はもう少し調査を行い、私のために機能するこのスニペットを思いつきました:

 entities.Sort(delegate(Entity a, Entity b) { return a.layer.CompareTo(b.layer); });

Entityをリスト内のオブジェクトに置き換え、レイヤーを並べ替えるオブジェクトに置き換えるだけです。

于 2012-06-26T10:48:55.580 に答える