对于键值对的数据进行排序方法总结。

  1. /*使用排序字典,默认只支持升序
  2. SortedDictionary<DateTime, String> dd = new SortedDictionary<DateTime, String>();
  3. DateTime dt = DateTime.Now;
  4. dd.Add(dt, "bbb");
  5. dd.Add(dt.AddDays(-1), "ccc");
  6. dd.Add(dt.AddDays(1), "aaa");
  7. //可以借助List得到降序键或值
  8. List<String> lst = new List<String>(dd.Values);
  9. lst.Reverse();
  10. */
  11. /*使用Linq查询
  12. Dictionary<DateTime, String> dd = new Dictionary<DateTime, String>();
  13. DateTime dt = DateTime.Now;
  14. dd.Add(dt, "bbb");
  15. dd.Add(dt.AddDays(-1), "ccc");
  16. dd.Add(dt.AddDays(1), "aaa");
  17. var result = from pair in dd orderby pair.Key descending select pair;
  18. List<String> lst = new List<String>();
  19. foreach (var kv in result)
  20. {
  21. lst.Add(kv.Value);
  22. }
  23. //或
  24. Dictionary<DateTime, String> dd2 = result.ToDictionary(p=>p.Key, p=>p.Value);
  25. */
  26. //使用扩展方法
  27. Dictionary<DateTime, String> dd = new Dictionary<DateTime, String>();
  28. DateTime dt = DateTime.Now;
  29. dd.Add(dt, "bbb");
  30. dd.Add(dt.AddDays(-1), "ccc");
  31. dd.Add(dt.AddDays(1), "aaa");
  32. Dictionary<DateTime, String> dicAsc = dd.OrderBy(p=>p.Key).ToDictionary(p=>p.Key, p=>p.Value);
  33. Dictionary<DateTime, String> dicDesc = dd.OrderByDescending(p=>p.Key).ToDictionary(p=>p.Key, p=>p.Value);

C# 键值对数据排序的更多相关文章

  1. Android系统编程入门系列之应用内键值对数据的简单保存

    在应用程序间及与用户的通信交互过程中,会产生并传递一系列数据.针对这些数据,有部分是只在应用程序中使用的缓存数据,还有一部分是在不同位置多次或长时间使用的持久化数据. 对于缓存数据来说,通常以代码中定 ...

  2. JAVA整合Redis使用redisTemplate清除库中的所有键值对数据

    JAVA整合Redis使用redisTemplate清除库中的所有键值对数据,清除所有缓存数据 Set<String> keys = redisTemplate.keys("*& ...

  3. SharedPreferences使用(通过键值保存数据)

    保存数据到SharedPreferences中 要想使用SharedPreferences来存储数据, 首先需要获取到SharedPreferences对象. Android中主要提供了三种方法用于得 ...

  4. JavaScript获取Django模板中指定键值的数据,使用过滤器

    Django中利用js来操作数据的常规操作一般为点(.)操作符来获取字典或列表的数据,一般如{{data.0}},{{data.arg}} 但有时如果数据是嵌套类型的数据时,直接获取某个值就变得困难了 ...

  5. MyBatis返回Map键值对数据

    List<Map<String, String>> getMtypeList(); <select id="getMtypeList" resultT ...

  6. 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性

    本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...

  7. PHP二维数组按照键值排序

    在开发过程中,我们常常需要对二维数组按照数组的某个键来排序,这里提供两个封装好的方法,可以放到公共函数模块里以后需要的时候直接调用即可. /** * 二维数组按照键值降序排序 * @param arr ...

  8. Spark学习之键值对操作总结

    键值对 RDD 是 Spark 中许多操作所需要的常见数据类型.键值对 RDD 通常用来进行聚合计算.我们一般要先通过一些初始 ETL(抽取.转化.装载)操作来将数据转化为键值对形式.键值对 RDD ...

  9. Spark学习笔记3:键值对操作

    键值对RDD通常用来进行聚合计算,Spark为包含键值对类型的RDD提供了一些专有的操作.这些RDD被称为pair RDD.pair RDD提供了并行操作各个键或跨节点重新进行数据分组的操作接口. S ...

随机推荐

  1. String和StringBuilder、StringBuffer的区别?

    估计很多Java初学者在学习Java的过程中都会遇到这个问题,那就是String,StringBuilder,StringBuffer这三个类之间有什么区别?今天在这里整理一下,希望对大家有帮助哈.如 ...

  2. Nginx简单总结

    NGINX简单总结 特点总结 nginx有一个master进程和多个worker进程,master进程是主要用来管理worker进程,管理的内容包括以下内容:接收来自外界的信号,向各个woker进程发 ...

  3. CentOS 7下KVM支持虚拟化/嵌套虚拟化配置

    开启虚拟化: cat << EOF > /etc/modprobe.d/kvm-nested.conf options kvm-intel nested=1 options kvm- ...

  4. Visual Studio 2019 preview中体验C# 8.0新语法

    准备工作: Visual Studio 2019 Preview版本中并没有包含所有的C# 8.0的新功能,但目前也有一些可以试用了.在开始之前,需要进行入两项设置: 将Framework设置为.ne ...

  5. How to create .gitignore file in Windows Explorer

    How to create .gitignore file I need to add some rules to my .gitignore file, however, I can't find ...

  6. Android内存机制分析——堆和栈

    昨天用Gallery做了一个图片浏览选择开机画面的功能,当我加载的图片多了就出现OOM问题.以前也出现过这个问题,那时候并没有深究.这次打算好好分析一下Android的内存机制. 因为我以前是做VC+ ...

  7. Revit API根据参数类型取得参数的值

    参数的类型string与int取得的方法有所不同,可以封装成一个函数. //得到参数的值 public static string GetParamVal(Document doc, Paramete ...

  8. Wix中注册c#开发的Activex控件

    一.使用regasm.exe将DLL提取出TLB文件 regasm.exe "Tools.HMIBrowserDetector.dll" /tlb 二.使用wix的heat.exe ...

  9. 在Visual Studio中使用用例图描述系统与参与者间的关系

    "用例图"用来描述谁用系统,用系统做什么.用例图不涉及使用细节,只用来描述使用人员和系统的关系,也不涉及行动的顺序.一起来体验. 使用Visual Studio 2012创建解决方 ...

  10. ASP.NET Identity系列02,在ASP.NET MVC中增删改查用户

    本篇体验在ASP.NET MVC中使用ASP.NET Identity增删改查用户. 源码在这里:https://github.com/darrenji/UseIdentityCRUDUserInMV ...