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

本文关键字:Dictionary 元素 获取 方式 中的 foreach FIFO 我用 | 更新日期: 2023-09-27 18:26:03

我有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的方式获取元素吗?

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

不,字典不能保证按照插入的方式排列内容。

引用MSDN的简介:

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

在您的情况下,它们通常按键-x、y、z排序。