1

私はC#でリストをソートすることにかなり混乱しています。リスト(ソートメソッド)を使用してソートするか、IComparableを使用するなど、ソートに関するさまざまなチュートリアルを実行しましたが、実際には何も役に立ちませんでした。

たとえば、私は車のリストを持っています。

Car Number

Car Title

and few other properties

現在、車の番号は任意の 2 つの数字にすることも、Nan (null) にすることも、車のタイトルを null にすることもできません。

最初に車の番号で並べ替えられ、車で利用できない場合は、そのタイトルを使用して残りの車を並べ替えるようにリストを並べ替えたいと思います。

だから私はこのようなものを持っている場合、

Car 1      100.0 (car number)                  BMW x6 (car name)
Car 2      (there isn't any car number)        Mercedies A class (car name)
Car 3      99.0                                Alpha Romeo
Car 4      1.2                                 Jeep
Car 5      4.1                                 Victoria Marshall 1933
Car 6      no number                           Vauxhal

出力リストクラスを次のようにソートしたい

Car 4, Car 5, Car 3, Car 1, Car 2, Car 6

手伝ってくれてありがとう。

4

1 に答える 1

2

のようなものを試してください

var lst = new List<Cars>()

//add cars to list

lst = lst.Orderby(c => c.CarNumber).ToList();

次のように拡張できます。

lst = lst.Orderby(c => c.CarNumber).ThenBy(c=> c.Title).ToList();

または

IComparable を実装して、必要な方法で並べ替えます。

public class Car : IComparable<Car> 
{ 
    public string Number { get; set; } 

    public int CompareTo(Car obj) 
    { 
        return obj.Number.CompareTo(Number); 
    } 
}
于 2013-02-06T10:30:14.150 に答える