2013-05-18 6 views
17

私は都市のリストを持っています。プロパティの値でオブジェクトのリストをソート

List<City> cities; 

リストを人口別に並べ替えたいですか?私が想像しているコードは、次のようなものです:

cities.Sort(x => x.population); 

これは機能しません。このリストをどのようにソートする必要がありますか?

+2

http://stackoverflow.com/questions/2766686/how-do-i-use-a-lambda-expression-to-sort-オブジェクト内の整数 – devshorts

+1

[プロパティ別オブジェクトのリストのソート](http://stackoverflow.com/questions/9716273/sort-list-of-object-by-properties-c-sharp) – NINCOMPOOP

+0

ジョー、2つの議論が必要です。 1つはアイテムであり、もう1つは比較者です。私がリンクした投稿の例を確認してください – devshorts

答えて

35

Linq関数のOrderByを使用します。 http://msdn.microsoft.com/en-us/library/bb534966.aspx

+13

並べ替えを省略すると、OrderByは入力を変更しないことに注意することが重要です。 –

+0

リストを逆順に出力したい場合は、 'cities.Reverse()'を使うことができます。 – Curiousity

13

これを使用してください。

List<cities> newList = cities.OrderBy(o=>o.population).ToList(); 
2

別のオプションとして、Linqを使用できるほど幸運でない場合は、IComparerまたはIComparableインターフェイスを使用できます。ここで

2つのインターフェイス上での良好なKBの記事です: http://support.microsoft.com/kb/320727

関連する問題