<分区>
如果某些方法需要 ICollection<T>
作为论点,但我只有一个 IEnumerable<T>
available:转换这个IEnumerable<T>
是不是更好到 IList<T>
还是将其转换为数组更好 T[]
或者我应该将它转换成其他东西还是根本没有区别?
IEnumerable<T>
仅此方法调用需要,因此不需要进一步的读/写/扩展。
<分区>
如果某些方法需要 ICollection<T>
作为论点,但我只有一个 IEnumerable<T>
available:转换这个IEnumerable<T>
是不是更好到 IList<T>
还是将其转换为数组更好 T[]
或者我应该将它转换成其他东西还是根本没有区别?
IEnumerable<T>
仅此方法调用需要,因此不需要进一步的读/写/扩展。
最佳答案
如果您不打算访问这些元素,您应该使用 ToList()
来解释为什么 here .
如果您要遍历元素,那么通过索引(意味着将它们转换为数组)在性能方面会更好,这样您就可以使用 for 循环
,而不是 foreach 循环
。
for
比典型的 foreach
更快,因为它使用索引来访问每个元素。
关于c# - ICollection 作为参数 : Provide List or Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57524075/