【发布时间】:2013-01-25 16:33:09
【问题描述】:
所以,我找到了这样一段代码:
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 始终以相同的顺序返回事物,假设在迭代期间没有对字典进行任何修改?
【问题讨论】:
-
我建议你反编译 Dictionary 类,因为它完全依赖于内部实现。
标签: c# .net dictionary ienumerable