我想知道以下事实。我有一个数据存储库,它返回我所有的IEnumerable<Customer>
.
在我的业务逻辑中,有时我需要列表,以便我可以添加一些东西。
当我检索时,IEnumerable<Customer>
我有 2 个选项可以从中获取列表。
像这样使用 Linq 扩展方法.ToList()
或强制转换(我认为它不是转换)(List<Customer>)IEnumerable<Customer>
。
必须提到我不使用列表进行迭代,所以我不需要每次都使用我的枚举的新副本。在这种情况下,在我的简单情况下,我必须使用 cast 方法而不是.ToList
(这会创建一个新副本)吗?
// 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();