📜  C#SortedList(1)

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

C# SortedList介绍

SortedList是C#语言提供的数据结构,可以看作是一个有序的键值对集合。该数据结构允许通过键来进行元素的访问和操作,并且保证所有元素按照键的顺序进行排序。在大多数情况下,SortedList的性能与Dictionary类似,但它也提供了更多特殊的功能。

特性

以下是SortedList类的主要特征:

  • 可以按键对所有元素进行排序。
  • 键必须是唯一的,值可以是重复的。
  • 可以使用foreach循环来遍历元素,可以按照键或值的顺序进行遍历。
  • 可以使用索引或ContainsKey方法根据键来访问元素。
  • 可以使用ContainsValue方法根据值来访问元素。
  • 可以使用AddRemove方法来添加或删除元素。
用法
创建SortedList对象

可以通过以下方式进行SortedLList对象的创建:

SortedList sortedList = new SortedList();

还可以指定集合的初始容量大小:

SortedList sortedList = new SortedList(10);
添加元素

可以使用Add方法向SortedList中添加元素:

sortedList.Add("key1", "value1");
sortedList.Add("key2", "value2");

还可以使用[]下标操作符添加元素:

sortedList["key3"] = "value3";
访问元素

可以使用键来访问元素:

object value = sortedList["key1"];

如果键不存在,会抛出KeyNotFoundException异常。可以使用ContainsKey方法来检查键是否存在:

if (sortedList.ContainsKey("key1"))
{
    object value = sortedList["key1"];
}

也可以使用ContainsValue方法来检查值是否存在:

if (sortedList.ContainsValue("value1"))
{
    // ...
}
删除元素

可以使用Remove方法删除元素:

sortedList.Remove("key1");
遍历元素

可以使用foreach循环来遍历元素:

foreach (DictionaryEntry entry in sortedList)
{
    Console.WriteLine("{0}, {1}", entry.Key, entry.Value);
}

也可以按照键或值的顺序进行遍历:

foreach (string key in sortedList.Keys)
{
    Console.WriteLine("{0}, {1}", key, sortedList[key]);
}

foreach (string value in sortedList.Values)
{
    Console.WriteLine("{0}", value);
}
性能

SortedList的性能依赖于元素的数量和键的类型。对于较小的集合,性能可能与Dictionary类似,但对于具有大量元素的大型集合,SortedList可能更适合。在使用SortedList时应该注意到元素的数量和键的类型,以确保获得最佳性能。

总结

SortedList是C#语言提供的一个用于存储键值对的有序集合。它可以按照键来排序元素,并且允许通过键来访问和操作元素。SortedList的性能依赖于元素的数量和键的类型,但它也提供了诸如ContainsValue方法等其他特殊功能。如果您需要一个有序的键值对集合,可以尝试使用SortedList来实现它。