zoukankan      html  css  js  c++  java
  • C# 键值对数据排序

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

    [csharp] view plaincopy
    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.   
    12. /*使用Linq查询 
    13. Dictionary<DateTime, String> dd = new Dictionary<DateTime, String>(); 
    14. DateTime dt = DateTime.Now; 
    15. dd.Add(dt, "bbb"); 
    16. dd.Add(dt.AddDays(-1), "ccc"); 
    17. dd.Add(dt.AddDays(1), "aaa"); 
    18.  
    19. var result = from pair in dd orderby pair.Key descending select pair; 
    20. List<String> lst = new List<String>(); 
    21. foreach (var kv in result) 
    22.     lst.Add(kv.Value); 
    23. //或 
    24. Dictionary<DateTime, String> dd2 = result.ToDictionary(p=>p.Key, p=>p.Value); 
    25. */  
    26.   
    27. //使用扩展方法  
    28. Dictionary<DateTime, String> dd = new Dictionary<DateTime, String>();  
    29. DateTime dt = DateTime.Now;  
    30. dd.Add(dt, "bbb");  
    31. dd.Add(dt.AddDays(-1), "ccc");  
    32. dd.Add(dt.AddDays(1), "aaa");  
    33.   
    34. Dictionary<DateTime, String> dicAsc = dd.OrderBy(p=>p.Key).ToDictionary(p=>p.Key, p=>p.Value);  
    35. Dictionary<DateTime, String> dicDesc = dd.OrderByDescending(p=>p.Key).ToDictionary(p=>p.Key, p=>p.Value); 
  • 相关阅读:
    前端切图:自制简易音乐播放器
    SEO那些事:一句代码一键分享网站
    POJ 2553 Tarjan
    POJ 2186 Tarjan
    POJ 1236 Tarjan算法
    POJ 1330 Tarjan LCA、ST表(其实可以数组模拟)
    POJ 1470 Tarjan算法
    POJ 1985 求树的直径 两边搜OR DP
    POJ 3687 拓扑排序
    POJ 3522 Kruskal
  • 原文地址:https://www.cnblogs.com/gc2013/p/4205915.html
Copyright © 2011-2022 走看看