ICollection作为参数:提供列表或数组

时间:2019-08-16 11:45:45

标签: c# arrays ienumerable icollection

如果某些方法需要使用ICollection<T>作为参数,但是我只有IEnumerable<T>可用:将这个IEnumerable<T>转换为IList<T>还是更好?最好将其转换为数组T[],还是应该将其转换为其他东西,或者根本没有区别?

此方法调用仅需要IEnumerable<T>,因此不需要进一步的读/写/扩展。

1 个答案:

答案 0 :(得分:1)

如果您不打算访问元素,则应使用ToList(),如解释here的原因一样。

如果要遍历元素,那么在性能上最好通过索引(即将它们强制转换为数组)来完成,以便可以使用for loop来代替foreach loop中的一个。

for比典型的foreach更快,因为它使用索引来访问每个元素。