いくつかのリストがあります:
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
リストの要素に何らかの変換を適用したいのですが、これには 2 つの方法があります。
List<int> list1 = list.Select(x => 2 * x).ToList();
List<int> list2 = list.ConvertAll(x => 2 * x).ToList();
これら2つの方法の違いは何ですか?
ベストアンサー1
Select
は LINQ 拡張メソッドであり、すべてのIEnumerable<T>
オブジェクトで機能しますが、ConvertAll
は によってのみ実装されますList<T>
。ConvertAll
メソッドは .NET 2.0 以降に存在していますが、LINQ は 3.5 で導入されました。
Select
あらゆる種類のリストで機能するため、を優先する必要がありますConvertAll
が、基本的には同じことを行います。