码迷,mamicode.com
首页 > 其他好文 > 详细

SortedList<T,K>,SortedDictionary<T,K>,Dictionay<T,K>用法区别

时间:2020-02-07 18:29:40      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:class   ict   ons   顺序   from   directed   net   rom   div   

这三货都是键值对,都可以通过Key获取Value。

 

  Dictionay<T,K> SortedDictionary<T,K> SortedList<T,K>
支持通过Index获取元素?
遍历时的排序方式 随机,与hash算法有关

默认用Key的值排序,而非插入顺序。可通过构造器传入自定义的排序方法。

每次插入新值都会与现有项比较,可能导致列表重置。

可查找索引
内存使用  
插入、移除性能  

抛开性能和内部实现,SortedDictionary<T,K>、 SortedList<T,K>这俩货用法基本相同,区别就是后者可以有索引操作而前者没有。

二者默认都是按Key的默认方式排序,支持自定义。比如,如果想按照自己的方式来排序,可以这样:

   class MyCompare : IComparer<string>
    {
        public int Compare(string x, string y)
        {
            return -1 * StringComparer.OrdinalIgnoreCase.Compare(x, y);
        }
    }

var a = new SortedList<String, string>(new MyCompare());

 

参考:https://docs.microsoft.com/zh-cn/dotnet/standard/collections/sorted-collection-types?redirectedfrom=MSDN

 

SortedList<T,K>,SortedDictionary<T,K>,Dictionay<T,K>用法区别

标签:class   ict   ons   顺序   from   directed   net   rom   div   

原文地址:https://www.cnblogs.com/hz-blog/p/12273521.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!