「layer」と呼ばれる整数変数を持つクラスがあります。これらのクラスのリストがあり、昇順で並べ替えます。どうすればこれを行うことができますか?ここで見つけた1つまたは2つのLINQメソッドを試しましたが、役に立ちませんでした。
質問する
13009 次
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);
于 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 に答える