C#中SortedList和SortedDictionary之间的区别

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

例子:

//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中, 数据为未排序形式。

来源:

https://www.srcmini02.com/69358.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?