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 объект .
#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)
для несортированных данных, где n
— Count. O(log n)
Это операция, если новый элемент добавляется в конец списка. Если вставка вызывает изменение размера, операция имеет значение O(n)
.