ASP.NET WebForms 中的 SortedList 核心用法与注意事项
引言
在传统的 ASP.NET WebForms 开发中,处理键值对数据时,我们往往需要一种既能快速查找又能自动保持顺序的数据结构。SortedList 正是为此而生的工具。它位于 System.Collections.Specialized 命名空间下,能够根据键(Key)的排序规则自动维护数据的顺序。
本文将结合实战场景,梳理 SortedList 的核心用法、性能特点以及在实际应用中容易踩坑的地方。
SortedList 核心特性
SortedList 本质上是一个基于数组实现的哈希表,它同时支持通过索引和键来访问元素。主要特点包括:
- 键值对存储:每个键必须唯一,对应的值可以是任意对象类型。
- 自动排序:插入时会根据键的自然排序或自定义比较器自动调整位置,默认升序。
- 双向访问:既可以通过 Key 获取 Value,也可以通过 Index 遍历所有元素。
- API 丰富:提供
Add,Remove,ContainsKey等常用方法。
基础用法实战
1. 初始化实例
创建实例非常简单,通常不需要指定容量,系统会自动扩容。
using System;
using System.Collections.Specialized;
SortedList sortedList = new SortedList();
2. 添加数据
使用 Add 方法向集合中添加键值对。注意,如果键已存在,会抛出异常,因此生产环境建议先检查。
sortedList.Add("Key1", "Value1");
sortedList.Add("Key2", "Value2");
// 尝试重复添加会报错
// sortedList.Add("Key1", "NewValue"); // InvalidOperationException
3. 获取与修改
这是最容易出错的地方。我们可以通过 Key 直接取值,也可以通过 Index 访问。如果 Key 不存在,直接取值会抛异常,建议使用 ContainsKey 判断。
// 通过 Key 获取
if (sortedList.ContainsKey("Key1"))
{
string value = sortedList["Key1"] as string;
Console.WriteLine(value);
}
// 通过 Index 获取(按排序后的顺序)
firstItem = sortedList.GetByIndex() ;

