集合

有序列表

预计阅读时间2 分钟 12 views

前言

有序列表是一个非泛型集合,它包含键值对,并且这些键是按照顺序排列的。例如:

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 是一个有序列表,它包含了键值对。

作用

有序列表用于存储键值对,并根据键的顺序对这些对进行排序。它在需要自动排序和快速查找的场景中非常有用。

使用场景

有序列表适用于以下场景:

  1. 配置管理:需要按照一定顺序读取配置项的场景。
  2. 排名系统:例如排行榜,根据分数对玩家进行排序。
  3. 有序数据存储:如商品价格列表、学生成绩单等。

示例

  1. 创建有序列表
using System;
using System.Collections;

class Program
{
    public static void Main()
    {
        // 创建一个有序列表
        SortedList myList = new SortedList();
    }
}
  1. 添加元素
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 的有序列表,并添加了三个元素,其中包括一个整数和两个字符串及其对应的键。

  1. 访问有序列表
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

在这个例子中,我们通过键访问了有序列表中的元素。

  1. 遍历有序序列
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() 方法获取有序序列中的键和值。

  1. 删除有序列表中的元素

我们可以使用以下两种方法从有序序列中删除一个或多个项:

  • 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”。

Leave a Comment

分享此文档

有序列表

或复制链接

内容