所以,我发现了一段这样的代码:
class CustomDictionary
{
Dictionary<string, string> backing;
...
public string Get(int index)
{
return backing.ElementAtOrDefault(index); //use linq extensions on IEnumerable
}
}
然后就这样使用了:
for(int i=0;i<mydictionary.Count;i++)
{
var value=mydictionary.Get(i);
}
除了这样做的性能问题和丑陋之外,这段代码实际上是否正确?也就是说,字典上的IEnumerable是否保证始终以相同的顺序返回事物,假设在迭代期间没有用字典修改任何内容?