这篇 StackOverflow答案 完全描述了
现在,当我通过
问题是:如果我多次枚举集合,不做任何修改,那么顺序会保持不变吗?是否总是相同的?
HashSet
无序的特性,其项目枚举顺序是不确定的,不能依赖它。
然而,
这带来了另一个问题:如果没有插入或删除操作,我是否应该依赖两个或多个连续枚举之间的枚举顺序?
例如,假设我已经向 HashSet 中添加了一些项:
HashSet<int> set = new HashSet<int>();
set.Add(1);
set.Add(2);
set.Add(3);
set.Add(4);
set.Add(5);
现在,当我通过
foreach
枚举该集合,假设我收到以下序列:// Result: 1, 3, 4, 5, 2.
问题是:如果我多次枚举集合,不做任何修改,那么顺序会保持不变吗?是否总是相同的?