當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# SortedList和SortedDictionary的區別用法及代碼示例


在 C# 中,SortedList 是根據鍵排序的鍵/值對的集合。默認情況下,此集合按升序對鍵/值對進行排序。它是通用和非通用類型的集合。通用 SortedList 在 System.Collections.Generic 命名空間中定義,而非通用 SortedList 在 System.Collections 命名空間下定義。

例子:


// 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是一個通用集合,用於以排序形式存儲鍵/值對,並且排序是在鍵上完成的。 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中,數據采用un-sorted形式。


相關用法


注:本文由純淨天空篩選整理自ankita_saini大神的英文原創作品 Difference between SortedList and SortedDictionary in C#。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。