c# - .NET 字典中的元素是连续的吗?

标签 c# .net dictionary

<分区>

比如说,如果我创建一个这样的字典:

Dictionary<string, MyClass> dic = new Dictionary<string, MyClass>();

dic.add("z1", val1);
dic.add("abc9", val2);
dic.add("abc8", val3);
dic.add("ABC1", val4);

所以当我这样做的时候:

foreach (KeyValuePair<string, MyClass> kvp in dic)
{
}

我是否保证可以这样检索这些值:“z1”、“abc9”、“abc8”、“ABC1”?

如果我先这样做,它会是:“z1”、“abc8”、“ABC1”吗?

dic.Remove("abc9");

最佳答案

没有。来自 MSDN (强调我的)

For purposes of enumeration, each item in the dictionary is treated as a KeyValuePair<TKey, TValue> structure representing a value and its key. The order in which the items are returned is undefined.

您可能想查看 OrderedDictionary如果您想更好地控制迭代顺序,请上课。

关于c# - .NET 字典中的元素是连续的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19038650/

相关文章:

c# - 在 C#/.Net 中进行面向方面编程 (AOP) 的最佳/最流行方法是什么?

.net - 如何将 PFX Task.Factory.StartNew 用于带有参数的 F# 函数?

dictionary - 为什么一个函数中的映射值会受到另一个函数中映射条目的影响?

java - 查找 map 是否包含列表/可迭代中的任何键的有效方法

c# - WinRT 应用程序通过按 Enter 键登录并显示 MVVM 指示灯

c# - WPF BitmapSource 图像源

c# - 为什么 itween 动画似乎比声明花费更多时间并防止延迟 Destroy()

c# - 如何等待异步方法中的 await 完成所有执行?

c# - 将 LINQ 语句从查询转换为流利的 c# 语法

python - 随机化 DataFrame 列中的值