|
|
1
20
到目前为止,我不得不不同意所有的答案。 首先,C#3.0标准保证数组上foreach的顺序:
-- C# Language Specification Version 3.0 第240页。 其次,在对象上,foreach(C#)和For Each(VB.NET)通过在对象上使用MoveNext、Reset和Current成员来工作( source ).这些通常是IEnumerator接口的一部分。 在有顺序的集合中(读:实现IList或IList(T)的东西),这意味着元素将按照后备存储存储它们的顺序返回。 |
|
|
2
5
没有任何保证。大多数列表/数组实现都会按顺序返回值,但肯定有例外,特别是在一些不太常见的集合类中。(例如,在C5中,许多集合返回的值的顺序与枚举时添加的顺序非常不同。) |
|
|
3
0
设计不保证。foreach用于无顺序枚举,意味着运行时甚至可能并行处理多个元素。你永远不应该依赖任何枚举顺序。 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |
|
|
Geremia · 2D NumPy数组+1D数组? 1 年前 |
|
|
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 1 年前 |
|
|
Paul Williams · 迭代数组时输出有问题 1 年前 |