📜  C#SortedDictionary(1)

📅  最后修改于: 2023-12-03 15:30:16.667000             🧑  作者: Mango

C# SortedDictionary

SortedDictionary 是 C# 中的一种基于红黑树的有序字典实现,它能够存储键值对,并且保证键的有序。 SortedDictionary提供了一些方法,可以实现查找特定键,向字典中添加键值对,移除特定键值对等操作。

示例

我们来看一个演示 SortedDictionary 的基本用法的示例:

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        SortedDictionary<string, int> dict = new SortedDictionary<string, int>();

        // 添加键值对
        dict.Add("goose", 1);
        dict.Add("lion", 5);
        dict.Add("zebra", 3);

        // 使用 foreach 遍历键值对
        foreach (KeyValuePair<string, int> kvp in dict)
        {
            Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
        }

        // 通过键获取值
        int value;
        if (dict.TryGetValue("lion", out value))
        {
            Console.WriteLine("The value of 'lion' is {0}", value);
        }

        // 移除键值对
        dict.Remove("goose");
    }
}

输出:

Key = goose, Value = 1
Key = lion, Value = 5
Key = zebra, Value = 3
The value of 'lion' is 5
常见操作
添加键值对

可以使用 Add 方法向 SortedDictionary 中添加键值对, 如果键已经存在,它将会抛出异常。 如果需要要重复添加键值对可以使用 [] 操作符来访问键的值。

// 创建 SortedDictionary
SortedDictionary<string, int> dict = new SortedDictionary<string, int>();
// 添加元素
dict.Add("goose", 1);
dict.Add("lion", 5);
dict.Add("zebra", 3);
// 使用 [] 操作符访问键的值
dict["lion"] = 10; //替换值
dict["bird"] = 2;  //添加元素
获取键值对

SortedDictionary 可以使用以下方式获取其内容:

  • 使用 foreach 遍历所有键值对
  • Count 获取元素个数
  • TryGetValue(key, out value) 获取某个键的值,如果键不存在不会抛出异常,而是返回 false
// 创建 SortedDictionary
SortedDictionary<string, int> dict = new SortedDictionary<string, int>();
// 添加元素
dict.Add("goose", 1);
dict.Add("lion", 5);
dict.Add("zebra", 3);

// 遍历所有键值对
foreach (KeyValuePair<string, int> kvp in dict)
{
    Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
}

// 获取键的值
int value;
if (dict.TryGetValue("lion", out value))
{
    Console.WriteLine("The value of 'lion' is {0}", value);
}

输出:

Key = goose, Value = 1
Key = lion, Value = 5
Key = zebra, Value = 3
The value of 'lion' is 5
移除键值对

SortedDictionary 可以使用 Remove 方法移除指定键的键值对。 如果移除失败会返回 false 值。

// 创建 SortedDictionary
SortedDictionary<string, int> dict = new SortedDictionary<string, int>();
// 添加元素
dict.Add("goose", 1);
dict.Add("lion", 5);
dict.Add("zebra", 3);

// 移除键值对
dict.Remove("goose");

// 遍历所有键值对
foreach (KeyValuePair<string, int> kvp in dict)
{
    Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
}

输出:

Key = lion, Value = 5
Key = zebra, Value = 3
总结

SortedDictionary 是 C# 中的一种基于红黑树的有序字典实现,它能够存储键值对,并且保证键的有序。在需要有序字典的时候很有用。其提供了添加、遍历、获取、移除键值对等一系列常见操作。