NameObjectCollectionBase.BaseAdd(String, Object) メソッド

定義

指定したキーと値を持つエントリを NameObjectCollectionBase インスタンスに追加します。

protected:
 void BaseAdd(System::String ^ name, System::Object ^ value);
protected void BaseAdd(string name, object value);
member this.BaseAdd : string * obj -> unit
Protected Sub BaseAdd (name As String, value As Object)

パラメーター

name
String

追加するエントリの String キー。 キーは nullできます。

value
Object

追加するエントリの Object 値。 値は nullできます。

例外

コレクションは読み取り専用です。

次のコード例では、BaseAddを使用して、IDictionaryの要素を含む新しいNameObjectCollectionBaseを作成します。

using System;
using System.Collections;
using System.Collections.Specialized;

public class MyCollection : NameObjectCollectionBase  {

   private DictionaryEntry _de = new DictionaryEntry();

   // Gets a key-and-value pair (DictionaryEntry) using an index.
   public DictionaryEntry this[ int index ]  {
      get  {
         _de.Key = this.BaseGetKey( index );
         _de.Value = this.BaseGet( index );
         return( _de );
      }
   }

   // Adds elements from an IDictionary into the new collection.
   public MyCollection( IDictionary d )  {
      foreach ( DictionaryEntry de in d )  {
         this.BaseAdd( (String) de.Key, de.Value );
      }
   }
}

public class SamplesNameObjectCollectionBase  {

   public static void Main()  {

      // Creates and initializes a new MyCollection instance.
      IDictionary d = new ListDictionary();
      d.Add( "red", "apple" );
      d.Add( "yellow", "banana" );
      d.Add( "green", "pear" );
      MyCollection myCol = new MyCollection( d );

      // Displays the keys and values of the MyCollection instance.
      for ( int i = 0; i < myCol.Count; i++ )  {
         Console.WriteLine( "[{0}] : {1}, {2}", i, myCol[i].Key, myCol[i].Value );
      }
   }
}


/*
This code produces the following output.

[0] : red, apple
[1] : yellow, banana
[2] : green, pear

*/
Imports System.Collections
Imports System.Collections.Specialized

Public Class MyCollection
   Inherits NameObjectCollectionBase

   Private _de As New DictionaryEntry()

   ' Gets a key-and-value pair (DictionaryEntry) using an index.
   Default Public ReadOnly Property Item(index As Integer) As DictionaryEntry
      Get
         _de.Key = Me.BaseGetKey(index)
         _de.Value = Me.BaseGet(index)
         Return _de
      End Get
   End Property

   ' Adds elements from an IDictionary into the new collection.
   Public Sub New(d As IDictionary)
      Dim de As DictionaryEntry
      For Each de In  d
         Me.BaseAdd(CType(de.Key, [String]), de.Value)
      Next de
   End Sub

End Class


Public Class SamplesNameObjectCollectionBase   

   Public Shared Sub Main()

      ' Creates and initializes a new MyCollection instance.
      Dim d = New ListDictionary()
      d.Add("red", "apple")
      d.Add("yellow", "banana")
      d.Add("green", "pear")
      Dim myCol As New MyCollection(d)

      ' Displays the keys and values of the MyCollection instance.
      Dim i As Integer
      For i = 0 To myCol.Count - 1
         Console.WriteLine("[{0}] : {1}, {2}", i, myCol(i).Key, myCol(i).Value)
      Next i

   End Sub

End Class


'This code produces the following output.
'
'[0] : red, apple
'[1] : yellow, banana
'[2] : green, pear

注釈

Countが既に容量と等しい場合は、内部配列を自動的に再割り当てすることでNameObjectCollectionBaseの容量が増え、新しい要素が追加される前に既存の要素が新しい配列にコピーされます。

Count容量より小さい場合、このメソッドは O(1) 操作です。 新しい要素に対応するために容量を増やす必要がある場合、このメソッドは O(n) 操作になり、 nCountされます。

適用対象