如果某些方法需要使用ICollection<T>
作为参数,但是我只有IEnumerable<T>
可用:将这个IEnumerable<T>
转换为IList<T>
还是更好?最好将其转换为数组T[]
,还是应该将其转换为其他东西,或者根本没有区别?
此方法调用仅需要IEnumerable<T>
,因此不需要进一步的读/写/扩展。
答案 0 :(得分:1)
如果您不打算访问元素,则应使用ToList()
,如解释here的原因一样。
如果要遍历元素,那么在性能上最好通过索引(即将它们强制转换为数组)来完成,以便可以使用for loop
来代替foreach loop
中的一个。
for
比典型的foreach
更快,因为它使用索引来访问每个元素。