【发布时间】:2010-08-21 06:20:40
【问题描述】:
让方法返回IList<T> 或IEnumerable<T> 的更有效方法是什么?
IEnumerable<T> 是不可变集合,但IList<T> 是可变集合,包含很多有用的方法和属性。
将IList<T> 转换为IEnumerable<T> 只是参考副本:
IList<T> l = new List<T>();
IEnumerable<T> e = l;
要将IEnumerable<T> 转换为List<T>,我们需要迭代每个元素或调用ToList() 方法:
IEnumerable<T>.ToList();
或者可以将IEnumerable<T> 传递给List<T> 构造函数,该构造函数在其构造函数的某处执行相同的迭代。
List<T> l = new List<T>(e);
您认为哪种情况更有效?在您的实践中您更喜欢哪个?
【问题讨论】: