0

List<Vehicles>は4つのアイテムを含むを持っています:

私のVehiclesオブジェクトには2つのプロパティがあります:VehIdVehName

私のリストの4つの項目は次のとおりです。

1)VehId : "LOR", VehName : "Lorry"

2)VehId : "CAR", VehName : "Car"

3)VehId : "BOA", VehName : "Boat"

4)VehId : "PLN", VehName : "Plane"

私がやりたいのは、Car車両をリストの一番上に置くことです。どうすればいいですか?.OrderBy()またはを使用して.Sort()

4

3 に答える 3

7

1つの方法はEnumerable.OrderBy:

var ordered = vehicles
        .OrderByDescending(v => v.VehId == "CAR")
        .ThenBy(v => v.VehName);

ここにデモがあります:http://ideone.com/QAgzd

于 2012-07-10T10:34:46.897 に答える
2

必要な基準で実装IComparable<Vehicle>してから、Sortを使用します。

于 2012-07-10T10:31:12.267 に答える
1

このようなものが機能するはずです:

vehicles.Sort((a,b) => -(a.VehId == "CAR").CompareTo(b.VehId == "CAR"));

IComparable<Vehicle>必要に応じて、次のようにして、実装に同じロジックを適用できます。

class Vehicle : IComparable<Vehicle>
{
    public int CompareTo(Vehicle other)
    {
        int c = (this.VehId == "CAR").CompareTo(this.VehId == "CAR");
        return c;
    }
    // other class code...
}

そして、あなたvehicles.Sort()は最初に車を手に入れるために単に電話することができます。

于 2012-07-10T10:32:57.597 に答える