各給一個範例CSortedList<TKey, TValue>、SortedDictionary<TKey, TValue> 和 SortedSet<T>
时间: 2024-11-05 12:34:34 浏览: 7
《给定三个.NET框架中的排序集合举例》
在.NET Framework中,有三种常用的内置数据结构用于存储有序的数据:`System.Collections.Generic.CSLimited<TKey, TValue>` (CSortedList),`System.Collections.Generic.SortedDictionary<TKey, TValue>` (SortedDictionary) 和 `System.Collections.Generic.SortedSet<T>` (SortedSet)。
1. **CSortedList<TKey, TValue>**:
CSortedList是一种线性的有序列表,其元素按照键值对的键进行排序。例如,你可以创建一个存储员工ID和姓名的有序列表:
```csharp
CSharpKeyValuePair<int, string>[] employees = new[] {
new KeyValuePair<int, string>(1001, "Alice"),
new KeyValuePair<int, string>(1003, "Bob"),
new KeyValuePair<int, string>(1002, "Charlie")
};
CSortedList<int, string> sortedEmployees = new CSortedList<int, string>(employees);
```
2. **SortedDictionary<TKey, TValue>**:
SortedDictionary是一个键值对的有序字典,其中键是唯一的。它会自动保持键的排序。比如,我们可以按照年龄存储学生信息:
```csharp
Dictionary<int, Student> students = new SortedDictionary<int, Student>();
students.Add(18, new Student { Name = "Tom", Age = 18 });
students.Add(19, new Student { Name = "Jerry", Age = 19 });
```
3. **SortedSet<T>**:
SortedSet是一个不包含重复元素的有序集,只允许插入唯一类型的元素。例如,你可以创建一个存储唯一数字的集合:
```csharp
SortedSet<int> uniqueNumbers = new SortedSet<int>();
uniqueNumbers.Add(1);
uniqueNumbers.Add(3);
uniqueNumbers.Add(2); // 这将不会添加,因为已经存在2
```
阅读全文