Поделиться через


SortedList.Add(Object, Object) Метод

Определение

Добавляет элемент с указанными ключом и значением в объект SortedList.

public:
 virtual void Add(System::Object ^ key, System::Object ^ value);
public virtual void Add (object key, 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)

Параметры

key
Object

Ключ добавляемого элемента.

value
Object

Добавляемое значение элемента. Допускается значение null.

Реализации

Исключения

key имеет значение null.

Элемент с указанным значением параметра key уже существует в объекте SortedList.

-или-

Для объекта SortedList задано использование интерфейса IComparable, а параметр key не реализует интерфейс IComparable.

Объект SortedList доступен только для чтения.

-или-

SortedList имеет фиксированный размер.

Недостаточно свободной памяти для добавления элемента в объект SortedList.

Средство сравнения выдает исключение.

Примеры

В следующем примере кода показано, как добавлять элементы в SortedList объект .

#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

Комментарии

Точка вставки определяется на основе выбранного компаратора (явно или по умолчанию) при SortedList создании объекта.

Если Count уже равно Capacity, емкость объекта увеличивается путем автоматического SortedList перераспределения внутреннего массива, а существующие элементы копируются в новый массив перед добавлением нового элемента.

Свойство также можно использовать Item[] для добавления новых элементов, задав значение ключа, который не существует в объекте SortedList (например, myCollection["myNonexistentKey"] = myValue). Однако если указанный ключ уже существует в SortedList, установка Item[] свойства перезаписывает старое значение. В отличие от этого, Add метод не изменяет существующие элементы.

Элементы SortedList объекта сортируются по ключам либо в соответствии с конкретной IComparer реализацией, указанной SortedList при создании , либо в соответствии с IComparable реализацией, предоставляемой самими ключами.

Ключ не может иметь значение null, но значение может иметь значение .

Этот метод является операцией O(n) для несортированных данных, где nCount. O(log n) Это операция, если новый элемент добавляется в конец списка. Если вставка вызывает изменение размера, операция имеет значение O(n).

Применяется к

См. также раздел