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

这三货都是键值对,都可以通过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

 

posted on 2020-02-07 18:04  东篱南山  阅读(305)  评论(0编辑  收藏  举报

导航