【发布时间】:2011-11-13 15:23:57
【问题描述】:
我正在浏览这个问题和一些类似的问题:
Getting a sub-array from an existing array
我在很多地方读到这样的答案:
Getting a sub-array from an existing array
我想知道为什么 Skip 和 Take 不是数组的恒定时间操作?
反过来,如果它们是恒定时间操作,那么 Skip 和 Take 方法(没有在最后调用 ToArray() )是否具有相同的运行时间而没有执行 Array.Copy 的开销,而且还有更多空间有效率吗?
【问题讨论】:
-
考虑到您正在研究这些东西,这是一个有用的花絮:
Buffer.BlockCopy(DMA) 与Array.Copy(O(n)) 相比 真的 快 - 它只是但适用于基元(int、float 等)。 -
由于我使用的是对象数组,所以这对我正在查看的内容没有帮助,但知道这绝对是一件好事,谢谢。