C# SortedList 使用方法详解

南乔
南乔
发布时间:2026-10-14 | 2人浏览过
原创

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# 数据结构优化的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表