📅  最后修改于: 2023-12-03 15:14:27.488000             🧑  作者: Mango
SortedList是C#中一种有序的键值对集合,它继承自IDictionary接口,并且每个元素都是一个键值对,其中按照键进行排序。它比普通的Dictionary在读取和删除元素时都具有更高的效率,但是在插入元素时较慢。
SortedList中的键和值可以是任何类型的,而且可以通过自定义比较器来进行排序。当添加新元素时,SortedList会自动按照键的排序规则将元素插入到正确的位置上。
以下代码创建了一个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");
可以使用以下代码获取SortedList中的元素:
string value = sortedList[3];
该语句将会返回键为3的元素的值"apple"。
可以使用以下代码遍历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
可以使用以下代码移除SortedList中的元素:
sortedList.Remove(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对象。