对一个Dictionary<TKey, TValue>进行键排序可以直接用SortedDictionary
SortedDictionary<TKey, TValue> 泛型类是检索运算复杂度为 O(log n) 的二叉搜索树,其中 n
是字典中的元素数。 就这一点而言,它与 SortedList<TKey, TValue> 泛型类相似。
这两个类具有相似的对象模型,并且都具有 O(log n) 的检索运算复杂度。
这两个类的区别在于内存的使用以及插入和移除元素的速度:
SortedList<TKey, TValue> 使用的内存比 SortedDictionary<TKey,
TValue> 少,SortedDictionary<TKey, TValue> 可对未排序的数据执行更快的插入和移除操作:
它的时间复杂度为 O(log n),而 SortedList<TKey,TValue> 为
O(n),如果使用排序数据一次性填充,SortedList<TKey,TValue>比
SortedDictionary<TKey, TValue> 快。
每个键/值对都可以作为KeyValuePair<TKey, TValue>
结构进行检索,或作为DictionaryEntry通过非泛型IDictionary接口进行检索。只要键用作
SortedDictionary<TKey, TValue> 中的键,它们就必须是不可变的。

SortedDictionary<TKey, TValue> 中的每个键必须是唯一的。 键不能为 null,但是如果值类型 TValue 为引用类型,该值则可以为空。
SortedDictionary<TKey, TValue> 需要比较器实现来执行键比较。 可以使用一个接受 comparer 参数的构造函数来指定 IComparer<T> 泛型接口的实现;
如果不指定实现,则使用默认的泛型比较器 Comparer<T>.Default。
如果类型 TKey 实现 System.IComparable<T> 泛型接口,则默认比较器使用该实现。
对一个Dictionary<TKey, TValue>进行值排序可以用LINQ:

Dictionary<string,
string>
MyDictionary =
new Dictionary<string,
string>();

MyDictionary = (from entry
in MyDictionary

                                     orderby entry.Value ascending
                                     select entry).ToDictionary(pair =>
pair.Key, pair => pair.Value);

SortedDictionary的更多相关文章

  1. .net学习笔记----有序集合SortedList、SortedList<TKey,TValue>、SortedDictionary<TKey,TValue>

    无论是常用的List<T>.Hashtable还是ListDictionary<TKey,TValue>,在保存值的时候都是无序的,而今天要介绍的集合类SortedList和S ...

  2. Dictionary、SortedDictionary、Hashtable 、SortedList

    HashTable数据结构存在问题:空间利用率偏低.受填充因子影响大.扩容时所有的数据需要重新进行散列计算.虽然Hash具有O(1)的数据 检索效率,但它空间开销却通常很大,是以空间换取时间.所以Ha ...

  3. 记一次SortedDictionary的不当使用

    起初想用SortedDictionary做游戏中的排行榜,代码如下: using UnityEngine; using System; using System.Collections; using ...

  4. SortedDictionary和SortedList

    使用上两者的接口都类似字典,并且SortedList的比如Find,FindIndex,RemoveAll常用方法都没提供. 数据结构上二者差异比较大,SortedList查找数据极快,但添加新元素, ...

  5. C# 谈Dictionary<TKey,TValue>,SortedDictionary<TKey,TValue>排序

    使用过Dictionary的人都知道,当每一个Add里面的值都不会改变其顺序,所以需要需要对其排序的时候就用到SortedDictionary, 但SortedDictionary并不是那么理想,其默 ...

  6. 常用数据结构及复杂度 array、LinkedList、List、Stack、Queue、Dictionary、SortedDictionary、HashSet、SortedSet

    原文地址:http://www.cnblogs.com/gaochundong/p/data_structures_and_asymptotic_analysis.html  常用数据结构的时间复杂度 ...

  7. 集合-字典(Lookup/SortedDictionary)

    Lookup<TKey, TElement>非常类似于Dictionary<TKey, TValue>,但是把键映射在一个值集上. 必须调用ToLookup方法创建Lookup ...

  8. 警惕Dictionary和SortedDictionary的顺序陷阱

    /*我们查询资料得知Dictionary的遍历顺序和添加Add时的顺序是一致的,不像 HashTable 顺序不可知;于是我要依赖Dictionary的这种顺序一致特性做一个,固定大小400长度的队列 ...

  9. 深入解析Hashtable、Dictionary、SortedDictionary、SortedList

    我们先看Hashtable. MSDN的解释:表示键/值对的集合,这些键/值对根据键的哈希代码进行组织. Hash算法是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定 ...

随机推荐

  1. 6.openssl rsautl和openssl pkeyutl

    rsautl是rsa的工具,相当于rsa.dgst的部分功能集合.可用于签名.验证.加密和解密文件.非对称密钥的密钥是随机生成的,因此不需要也无法指定salt参与加密. pkeyutl是非对称加密的通 ...

  2. linux+php+apache web调用python脚本权限问题解决方案

    lamp : linux + apache + mysql + php 在上篇随笔中linux+php+apache调用python脚本时出现的问题的根本原因是:apache运行时使用的apache用 ...

  3. SQL SELECT SET

      SELECT SET 同时对多个变量同时赋值时 支持 不支持 表达式返回多个值时 将返回的最后一个值赋给变量 出错 表达式未返回值时 变量保持原值 变量被赋null值

  4. CSS3新增属性

    1>RGBA透明度(红.绿.蓝.alpha透明度) 2>块阴影 box-shadow(标签).text-shadow(文字) 3>圆角阴影 border-radius 4>边框 ...

  5. windbg学习---.browse打开一个新的command 窗口

    .browse r eax .browse <command>将会显示新的命令浏览窗口和运行给出的命令

  6. R作图

    R一般的散点图:plot() 折线图:plot()   lines() 柱状图  barplot() 箱子图  boxplot() 直方图:hist() 热力图:heatmap 画地图的:拓展包  m ...

  7. sql 多行合一行

    sql多行合并成一行 sql server SELECT [activityId], --STUFF( (SELECT ',' + Cast(A.phone AS varchar) FROM aaa ...

  8. Tesseract API在VS 2013中的配置以及调用

    [Tesseract]Tesseract API在VS 2013中的配置以及调用 时间:2016-05-31 20:35:19      阅读:127      评论:0      收藏:0      ...

  9. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->使用Spring Framework开发自己的应用程序

    1.直接基于spring framework开发自己的应用程序: 1.1参考资料: Spring官网spring-framework.4.3.5.RELAESE的Reference Documenta ...

  10. 1 Two Sum

    // Java public int[] twoSum(int[] nums, int target) { int[] answer = new int[2]; for (int i = 0; i & ...