c# - ICollection 作为参数 : Provide List or Array

标签 c# arrays ienumerable icollection

<分区>

如果某些方法需要 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/

相关文章:

c# - 为什么我不能在 CQL 中按主键排序?

C程序在插入后查找数组中元素的数量并且在插入时不计数

c# - .NET 循环完整性 101

c# - WPF 在 for 循环中递增绑定(bind)属性不会通知 UI,并会阻止它

c# - 调用 ToString() 时对结构进行装箱

java - 使用java将两个数组转换为json字符串对象

Java 对象值数组

.net - 重用 IEnumerable<T> 会导致错误结果,例如任何()

c# - 如何使用 LINQ 处理 IDisposable 的序列?

c# - Web 响应 header 中的 Unicode 数据