在C#中,SortedDictionary是一个通用集合,用于以排序形式存储键/值对,并对键进行排序。 SortedDictionary在System.Collection.Generic命名空间下定义。它本质上是动态的,这意味着已排序字典的大小会根据需要而增加。
重要事项:
- SortedDictionary类实现了
- ICollection
>接口 - IDictionary
接口 - IEnumerable
>接口 - IEnumerable
接口 - IReadOnlyCollection
>接口 - IReadOnlyDictionary
接口 - ICollection接口
- 词典界面
- IEnumerable接口
- ICollection
- 在SortedDictionary中,键必须是唯一的。不允许重复的密钥。
- 在SortedDictionary中,键是不可变的,不能为null。
- 在SortedDictionary中,当值的类型是引用类型时,该值可以为null。
- 它为未排序的数据提供最快的插入和删除操作。
- 在SortedDictionary中,您只能存储相同类型的键/值对。
- SortedDictionary的容量是SortedDictionary可以容纳的键/值对的数量。
- 它按升序排序。
如何创建SortedDictionary?
SortedDictionary类具有4个用于创建SortedDictionary的构造函数,其构造函数如下:
- SortedDictionary
(): 此构造函数用于创建SortedDictionary类的实例,该实例为空,并使用默认的IComparer实现作为键类型。 - SortedDictionary
(IComparer): 此构造方法用于创建SortedDictionary类的实例,该实例为空,并使用指定的IComparer实现比较键。 - SortedDictionary
(IDictionary): 此构造函数用于创建SortedDictionary类的实例,该实例包含从指定IDictionary复制的元素,并使用默认的IComparer实现作为键类型。 - SortedDictionary
(IDictionary,IComparer): 此构造函数用于创建SortedDictionary类的实例,该实例包含从指定IDictionary复制的元素,并使用指定的IComparer实现比较键。
让我们看看如何使用SortedDictionary
步骤1:借助using关键字,在程序中包含System.Collection.Generics命名空间。
using System.Collection.Generics;
步骤2:使用SortedDictionary
SortedDictionary
步骤3:如果要在SortedDictionary中添加元素,请使用Add()方法在SortedDictionary中添加键/值对。您还可以使用Collection Initializer在SortedDictionary中添加键/值对。
步骤4:使用foreach循环,使用索引值或使用for循环访问SortedDictionary的键/值对。
例子:
// C# program to illustrate how
// to create sorted dictionary
using System;
using System.Collections.Generic;
class GFG {
// Main Method
static public void Main()
{
// Creating sorted dictionary
// Using SortedDictionary class
SortedDictionary My_sdict =
new SortedDictionary();
// Adding key/value pair in Sorted
// Dictionary Using Add() method
My_sdict.Add(004, "Ask.com");
My_sdict.Add(003, "Yahoo");
My_sdict.Add(001, "Google");
My_sdict.Add(005, "AOL.com");
My_sdict.Add(002, "Bing");
Console.WriteLine("Top Search Engines:");
// Accessing the key/value pair of the
// SortedDictionary Using foreach loop
foreach(KeyValuePair pair in My_sdict)
{
Console.WriteLine("Rank: {0} and Name: {1}",
pair.Key, pair.Value);
}
// Creating another sorted dictionary
// using SortedDictionary class
// adding key/value pairs
// Using collection initializer
SortedDictionary My_sdict1 =
new SortedDictionary() {
{1, "Python"},
{5, "Swift"},
{2, "JavaScript"},
{4, "Go" },
{3, "Rust"}};
Console.WriteLine("Top Programming Language in 2019: ");
// Accessing the key/value pair of the
// SortedDictionary Using foreach loop
foreach(KeyValuePair pair in My_sdict1)
{
Console.WriteLine("Rank:{0} and Name: {1}",
pair.Key, pair.Value);
}
}
}
Top Search Engines:
Rank: 1 and Name: Google
Rank: 2 and Name: Bing
Rank: 3 and Name: Yahoo
Rank: 4 and Name: Ask.com
Rank: 5 and Name: AOL.com
Top Programming Language in 2019:
Rank:1 and Name: Python
Rank:2 and Name: JavaScript
Rank:3 and Name: Rust
Rank:4 and Name: Go
Rank:5 and Name: Swift
如何从SortedDictionary中删除元素?
在SortedDictionary中,允许从SortedDictionary中删除元素。 SortedDictionary
- Clear():此方法用于从SortedDictionary中删除所有元素。
- Remove(TKey):此方法用于从SortedDictionary中删除具有指定键的元素。
例子:
// C# program to illustrate how to
// Remove key/value pair from the
// SortedDictionary
using System;
using System.Collections.Generic;
class GFG {
// Main Method
static public void Main()
{
// Creating sorted dictionary
// Using SortedDictionary class
SortedDictionary My_sdict =
new SortedDictionary();
// Adding key/value pair in
// SortedDictionary Using
// the Add() method
My_sdict.Add(001, "Google");
My_sdict.Add(002, "Bing");
My_sdict.Add(003, "Yahoo");
My_sdict.Add(004, "Ask.com");
My_sdict.Add(005, "AOL.com");
// Initial number of key/value pairs
Console.WriteLine("Key/Value pair: {0}",
My_sdict.Count);
// After using Remove(TKey) method
My_sdict.Remove(002);
Console.WriteLine("Key/Value pair: {0}",
My_sdict.Count);
// After using Clear() method
My_sdict.Clear();
Console.WriteLine("Key/Value pair: {0}",
My_sdict.Count);
}
}
Key/Value pair: 5
Key/Value pair: 4
Key/Value pair: 0
如何在SortedDictionary中检查键/值对的可用性?
在SortedDictionary中,您可以检查给定的键或值是否存在于指定的SortedDictionary中。 SortedDictionary
- ContainsKey(TKey):此方法用于确定SortedDictionary是否包含具有指定键的元素。
- ContainsValue(TValue):此方法用于确定SortedDictionary是否包含具有指定值的元素。
例子:
// C# program to illustrate how to
// check the given key/value pair
// is exists or not in SortedDictionary
using System;
using System.Collections.Generic;
class GFG {
// Main Method
static public void Main()
{
// Creating sorted dictionary
// Using SortedDictionary class
SortedDictionary My_sdict =
new SortedDictionary();
// Adding key/value pair
// in SortedDictionary
// Using Add() method
My_sdict.Add(001, "Google");
My_sdict.Add(002, "Bing");
My_sdict.Add(003, "Yahoo");
My_sdict.Add(004, "Ask.com");
My_sdict.Add(005, "AOL.com");
// Using ContainsKey(TKey) method
if (My_sdict.ContainsKey(004) == true)
{
Console.WriteLine("Key Found..");
}
else
{
Console.WriteLine("Key Not Found..");
}
// Using ContainsValue(TValue) method
if (My_sdict.ContainsValue("Baidu") == true)
{
Console.WriteLine("Value Found..");
}
else
{
Console.WriteLine("Value Not Found..");
}
}
}
Key Found..
Value Not Found..