在 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形式。 |
相關用法
- C# SortedList用法及代碼示例
- C# SortedDictionary.Clear()用法及代碼示例
- C# SortedDictionary.ContainsValue()用法及代碼示例
- C# SortedDictionary.Remove()用法及代碼示例
- C# SortedDictionary.Add()用法及代碼示例
- C# SortedDictionary.Count用法及代碼示例
- C# SortedDictionary.Item[]用法及代碼示例
- C# SortedDictionary.Keys用法及代碼示例
- C# SortedDictionary.Values用法及代碼示例
- C# SortedSet用法及代碼示例
- C# String Clone()用法及代碼示例
- C# String Compare()用法及代碼示例
- C# String CompareOrdinal()用法及代碼示例
- C# String CompareTo()用法及代碼示例
- C# String Concat()用法及代碼示例
- C# String Contains()用法及代碼示例
- C# String Copy()用法及代碼示例
- C# String CopyTo()用法及代碼示例
- C# String EndsWith()用法及代碼示例
- C# String Equals()用法及代碼示例
- C# String Format()用法及代碼示例
- C# String GetEnumerator()用法及代碼示例
- C# String IndexOf()用法及代碼示例
- C# String Insert()用法及代碼示例
- C# String IsInterned()用法及代碼示例
注:本文由純淨天空篩選整理自ankita_saini大神的英文原創作品 Difference between SortedList and SortedDictionary in C#。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。