在 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#。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。