NameObjectCollectionBase.BaseAdd(String, Object) NameObjectCollectionBase.BaseAdd(String, Object) NameObjectCollectionBase.BaseAdd(String, Object) NameObjectCollectionBase.BaseAdd(String, Object) Method

Definition

Fügt einen Eintrag mit dem angegebenen Schlüssel und Wert der NameObjectCollectionBase-Instanz hinzu.Adds an entry with the specified key and value into the NameObjectCollectionBase instance.

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)

Parameter

name
String String String String

Der String-Schlüssel des hinzuzufügenden Eintrags.The String key of the entry to add. Der Schlüssel kann null sein.The key can be null.

value
Object Object Object Object

Der Object-Wert des hinzuzufügenden Eintrags.The Object value of the entry to add. Der Wert kann null sein.The value can be null.

Ausnahmen

Die Auflistung ist schreibgeschützt.The collection is read-only.

Beispiele

Das folgende Codebeispiel verwendet BaseAdd zum Erstellen eines neuen NameObjectCollectionBase mit Elementen aus einer IDictionary.The following code example uses BaseAdd to create a new NameObjectCollectionBase with elements from an IDictionary.

#using <system.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
public ref class MyCollection: public NameObjectCollectionBase
{
private:
   DictionaryEntry _de;

public:

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

   // Adds elements from an IDictionary* into the new collection.
   MyCollection( IDictionary^ d )
   {
      IEnumerator^ myEnum = d->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         DictionaryEntry^ de = safe_cast<DictionaryEntry^>(myEnum->Current);
         this->BaseAdd( safe_cast<String^>(de->Key), de->Value );
      }
   }
};

int main()
{
   // Creates and initializes a new MyCollection instance.
   IDictionary^ d = gcnew ListDictionary;
   d->Add( "red", "apple" );
   d->Add( "yellow", "banana" );
   d->Add( "green", "pear" );
   MyCollection^ myCol = gcnew 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->Item[ i ].Key, myCol->Item[ i ].Value );
   }
}

/*
This code produces the following output.

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

*/
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
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 'New

End Class 'MyCollection


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 'Main 

End Class 'SamplesNameObjectCollectionBase


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

Hinweise

Wenn Count bereits die Kapazität, die Kapazität entspricht der NameObjectCollectionBase wird erhöht, die automatisch erneut zugewiesen werden, das interne Array, und die vorhandenen Elemente in das neue Array kopiert werden, bevor das neue Element hinzugefügt wird.If Count already equals the capacity, the capacity of the NameObjectCollectionBase is increased by automatically reallocating the internal array, and the existing elements are copied to the new array before the new element is added.

Wenn Count ist kleiner als die Kapazität, diese Methode ist ein o(1)-Vorgang.If Count is less than the capacity, this method is an O(1) operation. Wenn die Kapazität für das neue Element erhöht werden muss, wird diese Methode eine O (n)-Vorgang, in denen n ist Count.If the capacity needs to be increased to accommodate the new element, this method becomes an O(n) operation, where n is Count.

Gilt für: