C# SortedList 使用方法详解
SortedList 是 C# 中结合 Hashtable 与 Array 特性的集合,按 Key 排序并支持 Index 访问。本文将详细解析其增删改查方法及特性。
准备条件
在开始操作前,需在项目中引入 System.Collections 命名空间,这是使用 SortedList 类的前提。该类的容量会自动按需增加,用户也可通过 TrimToSize 方法优化内存占用。
真实操作顺序
第1步:初始化并添加键值对
目的:演示如何向列表中插入数据及其自动排序特性。
动作:使用 Add(object key, object value) 方法添加元素。列表会根据 Key 的数值大小自动调整位置,而非插入顺序。
SortedList sList = new SortedList();
sList.Add(1, "d");
sList.Add(2, "c");
sList.Add(3, "b");
sList.Add(4, "a");
第2步:通过指定 Key 移除元素
目的:展示如何通过唯一标识符精准定位并删除数据。
动作:调用 Remove(object key)。注意该方法针对的是 Key,若传入的 Key 不存在则不引发异常,也不会修改列表结构。
sList.Remove(3); // 正确:根据 Key 3 删除对应的键值对
第3步:通过索引移除元素
目的:了解基于物理位置的删除机制。
动作:调用 RemoveAt(int index)。此处的参数为排序后的物理位置(从 0 开始),需严格区分于 Key 的概念。
sList.RemoveAt(3); // 移除当前排在索引 3 位置的元素
第4步:利用索引器修改或新增数据
目的:掌握便捷的字典式赋值语法。
动作:直接使用索引器 sList[key] = value。如果 Key 已存在,则更新 Value;如果 Key 不存在,则追加新元素。这与 Add() 有本质区别。
sList[2] = "dddddd"; // 若存在则覆盖,不存在则新增
第5步:获取元素的 Key 或 Value 列表
目的:遍历提取所有关联的键或值,便于进一步处理。
动作:分别调用 GetKeyList() 和 GetValueList(),返回 IList 集合对象。
IList keys = sList.GetKeyList();
第6步:精确搜索与判断
目的:验证集合内是否存在特定元素。
动作:使用 ContainsKey(key) 判断是否包含该主键;使用 ContainsValue(value) 检查是否存在指定值;使用 IndexOfKey(key) 获取某元素的物理索引位置。
完成判断
操作完成的标志是预期结果的状态得到确认:例如删除后集合 Count 属性减少,或通过索引器赋值后发现对应 Key 的值已成功更替。由于内部维护了两个数组,任何增删动作完成后,相关数组的元素均会进行相应的移位调整。
简要总结
SortedList 提供了既像哈希表又像数组的双重体验。它适合需要有序性且允许通过索引检索的场景。以上就是 C# SortedList 使用方法的详细内容,更多关于 C# 数据结构优化的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









