📜  C#SortedList与示例(1)

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

C# SortedList介绍及示例

SortedList概述

SortedList是C#中一种有序的键值对集合,它继承自IDictionary接口,并且每个元素都是一个键值对,其中按照键进行排序。它比普通的Dictionary在读取和删除元素时都具有更高的效率,但是在插入元素时较慢。

SortedList中的键和值可以是任何类型的,而且可以通过自定义比较器来进行排序。当添加新元素时,SortedList会自动按照键的排序规则将元素插入到正确的位置上。

SortedList示例
1. 插入元素

以下代码创建了一个SortedList对象,然后向其中插入5个键值对,键的类型是int,值的类型是string。

SortedList<int, string> sortedList = new SortedList<int, string>();

sortedList.Add(3, "apple");
sortedList.Add(5, "banana");
sortedList.Add(1, "cherry");
sortedList.Add(4, "durian");
sortedList.Add(2, "elderberry");
2. 获取元素

可以使用以下代码获取SortedList中的元素:

string value = sortedList[3];

该语句将会返回键为3的元素的值"apple"。

3. 遍历元素

可以使用以下代码遍历SortedList中的元素:

foreach (KeyValuePair<int, string> kvp in sortedList)
{
    Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
}

该语句将会输出以下结果:

Key = 1, Value = cherry
Key = 2, Value = elderberry
Key = 3, Value = apple
Key = 4, Value = durian
Key = 5, Value = banana
4. 移除元素

可以使用以下代码移除SortedList中的元素:

sortedList.Remove(5);

该语句将会移除键为5的元素。

5. 自定义排序

可以通过实现IComparer接口来自定义SortedList中键的排序规则。以下是一个示例代码:

public class ReverseComparer : IComparer<int>
{
    public int Compare(int x, int y)
    {
        return y.CompareTo(x);
    }
}

SortedList<int, string> sortedList = new SortedList<int, string>(new ReverseComparer());
sortedList.Add(3, "apple");
sortedList.Add(5, "banana");
sortedList.Add(1, "cherry");
sortedList.Add(4, "durian");
sortedList.Add(2, "elderberry");

该代码将创建一个按照键降序排列的SortedList对象。