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 更快,因为它使用索引来访问每个元素。