假设我有一个特定的集合。在不以任何方式改变集合的情况下,我用foreach两次循环遍历其内容。除了宇宙射线等异常情况外,这两个循环中的顺序是否一定保持一致?
或者,给定一个包含若干元素的HashSet<string>
,以下代码中注释行的输出结果会不一样的可能原因是什么:
{
var mySet = new HashSet<string>();
// Some code which populates the HashSet<string>
// Output1
printContents(mySet);
// Output2
printContents(mySet);
}
public void printContents(HashSet<string> set) {
foreach(var element in set) {
Console.WriteLine(element);
}
}
如果我能得到一个通俗易懂的答案,解释一下是什么导致实现不符合上述标准,那将会很有帮助。尤其是我对字典(Dictionary)
、列表(List)
和数组特别感兴趣。
RandomList
的类,其中枚举器会随机迭代元素。嘿嘿哈哈! - Nick Babcock