集合
有序列表
前言
有序列表是一个非泛型集合,它包含键值对,并且这些键是按照顺序排列的。例如:
using System;
using System.Collections;
class Program
{
public static void Main()
{
// 创建一个有序列表
SortedList myList = new SortedList();
myList.Add(2, "Python");
myList.Add(1, "Java");
myList.Add(3, "C");
// 遍历 myList
for (int i = 0; i < myList.Count; i++)
{
Console.WriteLine("{0} : {1} ", myList.GetKey(i),
myList.GetByIndex(i));
}
}
}
输出
1 : Java
2 : Python
3 : C
在这个例子中,myList
是一个有序列表,它包含了键值对。
作用
有序列表用于存储键值对,并根据键的顺序对这些对进行排序。它在需要自动排序和快速查找的场景中非常有用。
使用场景
有序列表适用于以下场景:
- 配置管理:需要按照一定顺序读取配置项的场景。
- 排名系统:例如排行榜,根据分数对玩家进行排序。
- 有序数据存储:如商品价格列表、学生成绩单等。
示例
- 创建有序列表
using System;
using System.Collections;
class Program
{
public static void Main()
{
// 创建一个有序列表
SortedList myList = new SortedList();
}
}
- 添加元素
using System;
using System.Collections;
class Program
{
public static void Main()
{
// 创建一个有序序列并添加项
SortedList person = new SortedList();
person.Add(2, 45);
person.Add(1, "Jack");
person.Add(3, "Florida");
}
}
在这个例子中,我们创建了一个名为 person
的有序列表,并添加了三个元素,其中包括一个整数和两个字符串及其对应的键。
- 访问有序列表
using System;
using System.Collections;
class Program
{
public static void Main()
{
SortedList myList = new SortedList();
myList.Add(2, "Python");
myList.Add(1, "Java");
myList.Add(3, "C");
// 访问键为 2 的元素
Console.WriteLine("键为 2 的元素: " + myList[2]);
// 访问键为 1 的元素
Console.WriteLine("键为 1 的元素: " + myList[1]);
}
}
输出
键为 2 的元素: Python
键为 1 的元素: Java
在这个例子中,我们通过键访问了有序列表中的元素。
- 遍历有序序列
using System;
using System.Collections;
class Program
{
public static void Main()
{
SortedList myList = new SortedList();
myList.Add(2, "BMW");
myList.Add(1, 96);
myList.Add(3, "Pizza");
// 遍历 myList
for (int i = 0; i < myList.Count; i++)
{
Console.WriteLine("{0} : {1} ", myList.GetKey(i),
myList.GetByIndex(i));
}
}
}
输出
1 : 96
2 : BMW
3 : Pizza
在这个例子中,我们使用 for
循环遍历 myList
。我们通过 GetKey()
和 GetByIndex()
方法获取有序序列中的键和值。
- 删除有序列表中的元素
我们可以使用以下两种方法从有序序列中删除一个或多个项:
Remove(key)
– 根据指定的键删除元素RemoveAt(index)
– 根据指定的索引删除元素
示例:使用 Remove() 方法
using System;
using System.Collections;
class Program
{
public static void Main()
{
SortedList myList = new SortedList();
myList.Add(2, "Evermore");
myList.Add(1, "Reputation");
myList.Add(3, "Folklore");
// 删除键为 1 的元素,即 "Reputation"
myList.Remove(1);
// 遍历修改后的有序序列
for (int i = 0; i < myList.Count; i++)
{
Console.WriteLine("{0} : {1} ", myList.GetKey(i),
myList.GetByIndex(i));
}
}
}
输出
2 : Evermore
3 : Folklore
在这个例子中,我们通过 Remove(1)
方法删除了键为 1 的元素,即 “Reputation”。
示例:使用 RemoveAt() 方法
using System;
using System.Collections;
class Program
{
public static void Main()
{
SortedList myList = new SortedList();
myList.Add(2, "Evermore");
myList.Add(1, "Reputation");
myList.Add(3, "Folklore");
// 删除索引为 1 的元素,即 "Evermore"
myList.RemoveAt(1);
// 遍历修改后的有序序列
for (int i = 0; i < myList.Count; i++)
{
Console.WriteLine("{0} : {1} ", myList.GetKey(i),
myList.GetByIndex(i));
}
}
}
输出
1 : Reputation
3 : Folklore
在这个例子中,我们通过 RemoveAt(1)
方法删除了索引为 1 的元素,即 “Evermore”。