私は次の事実について疑問に思っています。のすべてのデータを返すデータリポジトリがありますIEnumerable<Customer>
。
私のビジネスロジックでは、たとえばリストを追加するためにリストが必要になることがあります。
取得するときIEnumerable<Customer>
、リストを取得するための2つのオプションがあります。
Linq拡張メソッドを使用するか、.ToList()
このようにキャストします(変換ではないと思います)(List<Customer>)IEnumerable<Customer>
。
リストを反復に使用しないので、毎回列挙型の新しいコピーは必要ありません。この場合、私の単純なケースでは、.ToList
(新しいコピーを作成する)代わりにcastメソッドを使用する必要があるというのは本当ですか?
// use simple cast?
List<Customer> customers = (List<Customers>)DataSource.GetCustomers();
// or if i use this i get a bit of performance loss?
List<Customer> customers = DataSource.GetCustomers().ToList();