C#中SortedList和SortedDictionary之间的区别

在C#中SortedList是按键排序的键/值对的集合。默认情况下, 此集合按升序对键/值对进行排序。它具有通用和非通用类型的集合。通用SortedList定义在System.Collections.Generic命名空间, 而非通用SortedList在下面定义系统集合命名空间。
【C#中SortedList和SortedDictionary之间的区别】例子:

//C# program to illustrate how //to create a sortedlist using System; using System.Collections; class GFG {//Main Method static public void Main() {//Creating a sortedlist //Using SortedList class SortedList my_Slist = new SortedList(); //Adding key/value pairs in //SortedList using Add() method my_Slist.Add(1.02, "Dog" ); my_Slist.Add(1.07, "Cat" ); my_Slist.Add(1.04, "Rat" ); my_Slist.Add(1.01, "Bird" ); foreach (DictionaryEntry pair in my_Slist) { Console.WriteLine( "{0} and {1}" , pair.Key, pair.Value); } Console.WriteLine(); } }

输出如下:
1.01 and Bird 1.02 and Dog 1.04 and Rat 1.07 and Cat

在C#中分类词典是一个通用集合, 用于以排序形式存储键/值对, 并且对键进行排序。 SortedDictionary在下定义System.Collection.Generic命名空间。它本质上是动态的, 这意味着已排序字典的大小会根据需要而增加。
例子:
//C# program to illustrate how //to create a sorted dictionary using System; using System.Collections.Generic; class GFG {//Main Method static public void Main() {//Creating sorted dictionary //Using SortedDictionary class SortedDictionary< int , string> My_sdict = new SortedDictionary< int , string> (); //Adding key/value pair in Sorted //Dictionary Using Add() method My_sdict.Add(004, "Roscosmos" ); My_sdict.Add(003, "ESA" ); My_sdict.Add(001, "NASA" ); My_sdict.Add(005, "ISRO" ); My_sdict.Add(002, "CNSA" ); Console.WriteLine( "Top 5 space agencies 2018:" ); //Accessing the key/value pair of the //SortedDictionary Using foreach loop foreach (KeyValuePair< int , string> pair in My_sdict) { Console.WriteLine( "Rank: {0} and Name: {1}" , pair.Key, pair.Value); } } }

输出如下:
Top 5 space agencies 2018: Rank: 1 and Name: NASA Rank: 2 and Name: CNSA Rank: 3 and Name: ESA Rank: 4 and Name: Roscosmos Rank: 5 and Name: ISRO

以下是SortedList和SortedDictionary之间的一些区别:
SortedList SortedDictionary
SortedList的内存是开销。 SortedDictionary的内存没有瓶颈。
在SortedList中, 元素存储在内存中的连续块中。 在SortedDictionary中, 元素存储在单独的对象中, 该对象可以遍及整个堆。
在SoterdList中, 内存碎片很大。 在SoterdDictionary中, 内存碎片少。
它需要较少的存储空间。 它需要更多的存储空间。
在SortedList中, 需要较少的插入和删除操作。 在SortedDictionary中, 需要更多的插入和删除操作。
在SortedList中, 可以使用索引访问元素。 在SortedDictionary中, 可以使用索引或键访问元素。这里的键访问就足够了, 不需要使用索引访问元素。
在SortedList中, 数据已采用排序形式。 在SortedDictionary中, 数据为未排序形式。

    推荐阅读