SortedList.Add(Object, Object) メソッド

定義

指定したキーと値を持つ要素を SortedList オブジェクトに追加します。

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)

パラメーター

key
Object

追加する要素のキー。

value
Object

追加する要素の値。 値は nullできます。

実装

例外

keynullです。

指定した key を持つ要素は、 SortedList オブジェクトに既に存在します。

-または-

SortedListIComparable インターフェイスを使用するように設定されており、keyIComparable インターフェイスを実装しません。

SortedListは読み取り専用です。

-または-

SortedListには固定サイズがあります。

SortedListに要素を追加するのに十分なメモリがありません。

比較子は例外をスローします。

次のコード例は、 SortedList オブジェクトに要素を追加する方法を示しています。

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することはできませんが、値を指定することもできます。

このメソッドは、nCountされている、並べ替えられていないデータに対するO(n)操作です。 リストの末尾に新しい要素が追加された場合は、 O(log n) 操作です。 挿入によってサイズが変更された場合、操作は O(n)

適用対象

こちらもご覧ください