だから、私はこのようなコードを見つけました:
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 on Dictionaryは、反復中にディクショナリで何も変更されないと仮定して、常に同じ順序で物事を返すことが保証されていますか?