List theList
中的项目索引是否与theList.ToArray()
中的索引相同?即,theList[i]==theList.ToArray()[i]
肯定吗?假设答案是肯定的,只想再仔细检查一下。
更新
这是一个用例,如果您无法想象这是有用的:我正在使用一个接受数组作为输入的优化例程。目前我的变量在列表中。我想对变量运行优化例程,然后获取优化例程的结果(显然是一个数组),并将它们放回列表中。我想确保我能把它们放回原来的指数。
答案 0 :(得分:6)
ToArray使用Array.Copy保留了订单。
来自Array.Copy
从第一个元素开始复制Array中的一系列元素 并将它们粘贴到从第一个元素开始的另一个数组中。该 length指定为32位整数。
来自ToArray
使用Array.Copy复制元素,这是一个O(n)操作, 其中n是计数。
答案 1 :(得分:2)
LINQ' ToArray
只是枚举集合并将结果填充到数组中。 List<T>
线性列举,所以是的;指数将匹配。
请注意,.NET规范/文档不保证这一点,但不太可能改变。