SortedList.Add(Object, Object) Method

Definition

将带有指定键和值的元素添加到 SortedList 对象。Adds an element with the specified key and value to a SortedList object.

public:
 virtual void Add(System::Object ^ key, System::Object ^ value);
public virtual void Add (object key, object value);
abstract member Add : obj * obj -> unit
override this.Add : obj * obj -> unit
Public Overridable Sub Add (key As Object, value As Object)

Parameters

key
Object

要添加的元素的键。The key of the element to add.

value
Object

要添加的元素的值。The value of the element to add. 该值可以为 nullThe value can be null.

Implements

Exceptions

keynullkey is null.

带有指定 key 的元素已经存在于 SortedList 对象中。An element with the specified key already exists in the SortedList object.

- 或 --or- SortedList 设置为使用 IComparable 接口,并且 key 不实现 IComparable 接口。The SortedList is set to use the IComparable interface, and key does not implement the IComparable interface.

SortedList 为只读。The SortedList is read-only.

- 或 --or- SortedList 具有固定的大小。The SortedList has a fixed size.

没有足够的可用内存来将元素添加到 SortedListThere is not enough available memory to add the element to the SortedList.

比较器引发异常。The comparer throws an exception.

Examples

下面的代码示例演示如何向 SortedList 对象添加元素。The following code example shows how to add elements to a SortedList object.

#using <system.dll>

using namespace System;
using namespace System::Collections;
void PrintKeysAndValues( SortedList^ myList )
{
   Console::WriteLine(  "\t-KEY-\t-VALUE-" );
   for ( int i = 0; i < myList->Count; i++ )
   {
      Console::WriteLine(  "\t{0}:\t{1}", myList->GetKey( i ), myList->GetByIndex( i ) );

   }
   Console::WriteLine();
}

int main()
{
   
   // Creates and initializes a new SortedList.
   SortedList^ mySL = gcnew SortedList;
   mySL->Add( "one", "The" );
   mySL->Add( "two", "quick" );
   mySL->Add( "three", "brown" );
   mySL->Add( "four", "fox" );
   
   // Displays the SortedList.
   Console::WriteLine(  "The SortedList contains the following:" );
   PrintKeysAndValues( mySL );
}

/* 
This code produces the following output.

The SortedList contains the following:
        -KEY-   -VALUE-
        four:   fox
        one:    The
        three:  brown
        two:    quick
*/
using System;
using System.Collections;
public class SamplesSortedList  {

   public static void Main()  {

      // Creates and initializes a new SortedList.
      SortedList mySL = new SortedList();
      mySL.Add( "one", "The" );
      mySL.Add( "two", "quick" );
      mySL.Add( "three", "brown" );
      mySL.Add( "four", "fox" );

      // Displays the SortedList.
      Console.WriteLine( "The SortedList contains the following:" );
      PrintKeysAndValues( mySL );
   }

   public static void PrintKeysAndValues( SortedList myList )  {
      Console.WriteLine( "\t-KEY-\t-VALUE-" );
      for ( int i = 0; i < myList.Count; i++ )  {
         Console.WriteLine( "\t{0}:\t{1}", myList.GetKey(i), myList.GetByIndex(i) );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

The SortedList contains the following:
    -KEY-    -VALUE-
    four:    fox
    one:    The
    three:    brown
    two:    quick
*/
Imports System.Collections

Public Class SamplesSortedList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new SortedList.
        Dim mySL As New SortedList()
        mySL.Add("one", "The")
        mySL.Add("two", "quick")
        mySL.Add("three", "brown")
        mySL.Add("four", "fox")
        
        ' Displays the SortedList.
        Console.WriteLine("The SortedList contains the following:")
        PrintKeysAndValues(mySL)
    End Sub    
    
    Public Shared Sub PrintKeysAndValues(myList As SortedList)
        Console.WriteLine(ControlChars.Tab & "-KEY-" & ControlChars.Tab & _
           "-VALUE-")
        Dim i As Integer
        For i = 0 To myList.Count - 1
            Console.WriteLine(ControlChars.Tab & "{0}:" & ControlChars.Tab & _
               "{1}", myList.GetKey(i), myList.GetByIndex(i))
        Next i
        Console.WriteLine()
    End Sub
End Class

' This code produces the following output.
' 
' The SortedList contains the following:
'     -KEY-    -VALUE-
'     four:    fox
'     one:    The
'     three:    brown
'     two:    quick
 

Remarks

插入点是根据选择的比较器(显式或默认情况下)在创建 SortedList 对象时确定的。The insertion point is determined based on the comparer selected, either explicitly or by default, when the SortedList object was created.

如果 Count 已经等于 Capacity,则 SortedList 对象的容量会自动重新分配内部数组,并将现有元素复制到新数组,然后再添加新的元素。If Count already equals Capacity, the capacity of the SortedList object is increased by automatically reallocating the internal array, and the existing elements are copied to the new array before the new element is added.

还可以通过设置 SortedList 对象中不存在的键的值(例如,myCollection["myNonexistentKey"] = myValue)来使用 Item[] 属性来添加新元素。You can also use the Item[] property to add new elements by setting the value of a key that does not exist in the SortedList object (for example, myCollection["myNonexistentKey"] = myValue). 但是,如果 SortedList中已经存在指定的键,则设置 Item[] 属性将覆盖旧值。However, if the specified key already exists in the SortedList, setting the Item[] property overwrites the old value. 与此相反,Add 方法不会修改现有元素。In contrast, the Add method does not modify existing elements.

SortedList 对象的元素根据创建 SortedList 时指定的特定 IComparer 实现进行排序,或根据键本身所提供的 IComparable 实现进行排序。The elements of a SortedList object are sorted by the keys either according to a specific IComparer implementation specified when the SortedList is created or according to the IComparable implementation provided by the keys themselves.

不能 null键,但值可以为。A key cannot be null, but a value can be.

此方法对于未排序的数据是 O(n) 操作,其中 nCount的。This method is an O(n) operation for unsorted data, where n is Count. 如果新元素添加到列表的末尾,则该操作是 O(log n) 操作。It is an O(log n) operation if the new element is added at the end of the list. 如果插入操作导致大小调整,则操作 O(n)If insertion causes a resize, the operation is O(n).

Applies to

See also