📜  C#|如何在SortedList中添加键/值对

📅  最后修改于: 2021-05-29 20:36:23             🧑  作者: Mango

SortedList类是根据键对(键,值)对进行排序的集合。可以通过键和索引(从零开始的索引)访问这些对。它位于System.Collections命名空间下。 SortedList.Add(Object,Object)方法用于将具有指定键和值的元素添加到SortedList对象。

SortedList的属性:

  • 内部SortedList对象维护两个数组。第一个数组用于存储列表的元素,即键,第二个数组用于存储关联的值。
  • 键不能为null,但值可以为null。
  • 由于SortedList使用了排序,因此与Hashtable相比,它要慢一些。
  • 可以通过重新分配来动态增加SortedList的容量。
  • SortedList中的键不能重复,但值可以重复。
  • 可以使用IComparer根据键对SortedList进行排序(升序或降序)。

句法:

public virtual void Add (object key, object value);

参数:

例外情况:

  • ArgumentNullException:如果键为null。
  • ArgumentException:如果具有指定键的元素已经存在于SortedList对象中,或者已将SortedList设置为使用IComparable接口,并且该键未实现IComparable接口。
  • NotSupportedException:如果SortedList为只读或具有固定大小。
  • OutOfMemoryException:如果系统中没有足够的可用内存将对添加到SortedList。
  • InvalidOperationException:如果比较器引发异常。

下面的程序说明了上面讨论的方法的使用:

范例1:

// C# program to illustrate how to add key/value
// pair in SortedList
using System;
using System.Collections;
  
class Geeks {
  
    // Main Method
    public static void Main(String[] args)
    {
  
        // Creating a sorted list of key/value pairs
        SortedList fslist = new SortedList();
  
        // Adding pairs to fslist
        fslist.Add("Maths    ", 98);
        fslist.Add("English  ", 99);
        fslist.Add("Physics  ", 97);
        fslist.Add("Chemistry", 96);
        fslist.Add("CSE      ", 100);
  
        // Displays the marks in different
        // subjects sorted according to keys
        // i.e subjects
        // Here Count property is used to count
        // the total number of pairs in SortedList
        for (int i = 0; i < fslist.Count; i++) {
            Console.WriteLine("{0}:\t{1}", fslist.GetKey(i),
                                      fslist.GetByIndex(i));
        }
    }
}

输出:

Chemistry:    96
CSE      :    100
English  :    99
Maths    :    98
Physics  :    97

范例2:

// C# program to illustrate how to add
// key/value pair in SortedList
using System;
using System.Collections;
  
class Geeks {
  
    // Main Method
    public static void Main(String[] args)
    {
  
        // Creating a sorted list of key/value pairs
        SortedList fslist = new SortedList();
  
        // Adding pairs to fslist
        fslist.Add("Maths    ", 98);
        fslist.Add("English  ", 99);
        fslist.Add("Physics  ", 97);
        fslist.Add("Chemistry", 96);
  
        // this will give error as we are
        // adding duplicate key i.e Chemistry
        fslist.Add("Chemistry", 100);
    }
}

错误:

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.sortedlist.add?view=netframework-4.7.2