日期:2014-05-18  浏览次数:20936 次

请问,Dictionary类(字典)的排列顺序
Dictionary类:http://msdn.microsoft.com/zh-cn/library/xfhwa508(v=VS.100).aspx

其Item属性的参数是字典的键,不像List类,索引是int型的数字,List的元素的排列顺序就按照它的索引值来排列的
,那请问,Dictionary的元素有没有排列顺序,如果有,是什么决定了这个顺序值,如果没有,那遍历的时候,它又是
怎么遍历的,是无序遍历的吗?

------解决方案--------------------
如果你希望排序的话,你可以在生成字典的时候,就按顺序插入 ,也就是说插入前 ,先排序,再插入!
------解决方案--------------------
探讨

SortedDictionary(Of TKey, TValue) 类
的元素的顺序是怎么获得的,也就是int型的索引值

------解决方案--------------------
C# code

Dictionary<string, string> list = new Dictionary<string, string>();
list.OrderBy(m => m.Key); //按key排序
list.OrderBy(m => m.Value); //按value排序
list.OrderBy(m => m.Key.Substring(1, 1)); //按key中的第2个字符进行排序

------解决方案--------------------
http://topic.csdn.net/u/20080224/02/42824171-2246-40c2-8858-c63ca106a4b0.html?1604286828

猛然一卡可能 ls 的 很好,但是搜了一下 ls的是不对的

你看下这个帖子。


Dictionary<(Of <(TKey, TValue>)>) 泛型类提供了从一组键到一组值的映射。字典中的每个添加项都由一个值及其相关联的键组成。通过键来检索值的速度是非常快的,接近于 O(1),这是因为 Dictionary<(Of <(TKey, TValue>)>) 类是作为一个哈希表来实现的。

这个就是Dictionary的定义,它是作为一个哈希表来实现的


而大家都知道 hash 排序是没意义的

建议你用这个SortedDictionary