NameObjectCollectionBase.BaseAdd(String, Object) Methode

Definitie

Voegt een vermelding met de opgegeven sleutel en waarde toe aan het NameObjectCollectionBase exemplaar.

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)

Parameters

name
String

De String sleutel van de vermelding die moet worden toegevoegd. De sleutel kan zijn null.

value
Object

De Object waarde van de vermelding die moet worden toegevoegd. De waarde kan zijn null.

Uitzonderingen

De verzameling heeft het kenmerk Alleen-lezen.

Voorbeelden

In het volgende codevoorbeeld wordt gebruikgemaakt BaseAdd van het maken van een nieuwe NameObjectCollectionBase met elementen van een IDictionary.

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

Opmerkingen

Als Count de capaciteit al gelijk is aan de capaciteit, wordt de capaciteit NameObjectCollectionBase verhoogd door de interne matrix automatisch opnieuw te verplaatsen en worden de bestaande elementen gekopieerd naar de nieuwe matrix voordat het nieuwe element wordt toegevoegd.

Als Count de capaciteit kleiner is dan de capaciteit, is deze methode een O(1)-bewerking. Als de capaciteit moet worden verhoogd om het nieuwe element aan te kunnen, wordt deze methode een O(n-bewerking, waar n dat is Count.

Van toepassing op