アプリケーションを.Net4.0から.Net4.5Frameworkに変換していますが、List<>
定義が変更されています。私の古いコードは次のようになりました(.Net 4.0):
List<Customer> list = new List<Customer>();
list.Add(new Customer("Smith", "John", "Sydney", 45));
list.Add(new Customer("Mitchell", "Brad", "New York", 52));
list.Add(new Customer("Baker", "William", "Cape Town", 21));
list.OrderBy(x => x.Name);
.Net 4.5(C#5)を使用すると、このList<T>.OrderBy()
メソッドはなくなり、List<T>.Sort()
使用できるようになりますが、このメソッドでLambda式を使用する可能性はないようです。
IComparer
for everyを定義する以外のオプションはあります<T>
か?ラムダ式のオプションが本当にない場合は、ジェネリックIComparer
で生活することができますが、比較するプロパティを選択するにはどうすればよいですか?
解決/編集:
using Linq;
[...]
List<Customer> list = new List<Customer>();
list.Add(new Customer("Smith", "John", "Sydney", 45));
list.Add(new Customer("Mitchell", "Brad", "New York", 52));
list.Add(new Customer("Baker", "William", "Cape Town", 21));
list.OrderBy(x => x.Name); //list stays unordered
list = list.OrderBy(x => x.Name).ToList(); // list content is now ordered