在C#中使用foreach以FIFO方式获取Dictionary中的元素吗?

pro*_*eek 2 c# dictionary

我有C#字典.

Dictionary<string, string> map = new Dictionary<string, string>();
map["x"] = "1";
map["z"] = "2";
map["y"] = "0";
Run Code Online (Sandbox Code Playgroud)

当我拿到钥匙时foreach,我得到"x" - "z" - "y"的值.这是我给地图输入的序列.

foreach (var pair in map)
{
    Console.WriteLine(pair.Key);
}       
Run Code Online (Sandbox Code Playgroud)

这是保证的行为吗?我的意思是,使用Dictionary,我是否总是以FIFO方式获取元素?

Rus*_*rke 5

不,字典不保证按插入方式排序其内容.

引用MSDN中的模糊:

'为了枚举的目的,字典中的每个项都被视为表示值及其键的KeyValuePair(Of TKey,TValue)结构.返回项目的顺序是未定义的.