ICollection 作为参数:提供列表或数组
ICollection as argument: Provide List or Array
如果某些方法需要一个 ICollection<T>
作为参数,但我只有一个 IEnumerable<T>
可用:将此 IEnumerable<T>
转换为 IList<T>
还是更好将它转换为数组更好吗 T[]
还是我应该将它转换为其他东西还是根本没有区别?
仅此方法调用需要 IEnumerable<T>
,因此不再需要 read/write/extend。
如果您不打算访问这些元素,您应该使用 ToList()
,原因已解释为 here。
如果您要遍历元素,那么通过索引(意味着将它们转换为数组)在性能方面会更好,这样您就可以使用 for loop
,而不是 foreach loop
。
for
比典型的 foreach
更快,因为它使用索引来访问每个元素。
如果某些方法需要一个 ICollection<T>
作为参数,但我只有一个 IEnumerable<T>
可用:将此 IEnumerable<T>
转换为 IList<T>
还是更好将它转换为数组更好吗 T[]
还是我应该将它转换为其他东西还是根本没有区别?
仅此方法调用需要 IEnumerable<T>
,因此不再需要 read/write/extend。
如果您不打算访问这些元素,您应该使用 ToList()
,原因已解释为 here。
如果您要遍历元素,那么通过索引(意味着将它们转换为数组)在性能方面会更好,这样您就可以使用 for loop
,而不是 foreach loop
。
for
比典型的 foreach
更快,因为它使用索引来访问每个元素。