猿问
下载APP

Dictionary中元素的顺序

Dictionary中元素的顺序

我的问题是关于枚举字典元素


// Dictionary definition

private Dictionary<string, string> _Dictionary = new Dictionary<string, string>();


// add values using add


_Dictionary.Add("orange", "1");

_Dictionary.Add("apple", "4");

_Dictionary.Add("cucumber", "6");


// add values using []


_Dictionary["banana"] = 7;

_Dictionary["pineapple"] = 7;


// Now lets see how elements are returned by IEnumerator

foreach (KeyValuePair<string, string> kvp in _Dictionary)

{

  Trace.Write(String.Format("{0}={1}", kvp.Key, kvp.Value));

}

枚举的元素将以什么顺序排列?我可以强制命令按字母顺序排列吗?


偶然的你
浏览 53回答 3
3回答

白衣非少年

字典中元素的顺序是非确定性的。订单的概念根本没有为哈希表定义。所以不要依赖枚举,因为元素被添加到字典中。这不能保证。从文档引用:出于枚举的目的,字典中的每个项目都被视为KeyValuePair<TKey, TValue>表示值及其键的结构。返回项的顺序未定义。

www说

你可以随时使用SortedDictionary它。请注意,默认情况下,字典按键排序,除非指定了比较器。我对使用OrderedDictionary你想要的东西持怀疑态度,因为文档说:与SortedDictionary类的元素不同,OrderedDictionary的元素不按键排序。

慕莱坞7535251

如果您想要订购的元素,请使用OrderedDictionary。普通hastable /字典仅在存储布局的某种意义上被排序。
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答