SortedList.Add(Object, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したキーおよび値を持つ要素を 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 に明示的または既定で選択された比較子に基づいて決定されます。
が既に と等しいCapacity場合Countは、内部配列をSortedList自動的に再割り当てすることでオブジェクトの容量が増加し、新しい要素が追加される前に既存の要素が新しい配列にコピーされます。
また、 プロパティをItem[]使用して、 オブジェクトに存在しないキーの値 (たとえば、 など) を設定することで、myCollection["myNonexistentKey"] = myValue
新しい要素をSortedList追加することもできます。 ただし、指定したキーが に既に SortedList存在する場合は、 プロパティを Item[] 設定すると古い値が上書きされます。 これに対し、 メソッドは既存の Add 要素を変更しません。
オブジェクトの要素は、 の作成時SortedListに指定された特定IComparerのSortedList実装に従うか、キー自体によって提供される実装にIComparable従って、キーによって並べ替えられます。
キーを に null
することはできませんが、値は にできます。
このメソッドは、 O(n)
並べ替えられていないデータの操作です。ここで n
、 は Countです。 リストの末尾に O(log n)
新しい要素が追加された場合の操作です。 挿入によってサイズが変更される場合、操作は です O(n)
。
適用対象
こちらもご覧ください
.NET