个性化阅读
专注于IT技术分析

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

赞(0) 打赏
未经允许不得转载:srcmini » C#中SortedList和SortedDictionary之间的区别
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏