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

时间:2012-02-28 01:25:37

标签: c# dictionary

我有C#字典。

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

当我获得foreach的密钥时,我得到“x” - “z” - “y”的值。这是我给地图输入的序列。

foreach (var pair in map)
{
    Console.WriteLine(pair.Key);
}       

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

2 个答案:

答案 0 :(得分:5)

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

引用MSDN中的模糊:

&#39;出于枚举的目的,字典中的每个项都被视为表示值及其键的KeyValuePair(Of TKey,TValue)结构。返回项目的顺序未定义。&#39;

答案 1 :(得分:-1)

它们通常按键 - x,y,z排序。