Freigeben über


NameObjectCollectionBase.BaseAdd-Methode

Fügt einen Eintrag mit dem angegebenen Schlüssel und Wert der NameObjectCollectionBase-Instanz hinzu.

Namespace: System.Collections.Specialized
Assembly: System (in system.dll)

Syntax

'Declaration
Protected Sub BaseAdd ( _
    name As String, _
    value As Object _
)
'Usage
Dim name As String
Dim value As Object

Me.BaseAdd(name, value)
protected void BaseAdd (
    string name,
    Object value
)
protected:
void BaseAdd (
    String^ name, 
    Object^ value
)
protected void BaseAdd (
    String name, 
    Object value
)
protected function BaseAdd (
    name : String, 
    value : Object
)

Parameter

  • name
    Der String-Schlüssel des hinzuzufügenden Eintrags. Der Schlüssel kann NULL (Nothing in Visual Basic) sein.
  • value
    Der Object-Wert des hinzuzufügenden Eintrags. Der Wert kann NULL (Nothing in Visual Basic) sein.

Ausnahmen

Ausnahmetyp Bedingung

NotSupportedException

Die Auflistung ist schreibgeschützt.

Hinweise

Wenn der Wert von Count bereits gleich der Kapazität ist, wird die Kapazität der NameObjectCollectionBase durch automatisches Neureservieren des internen Arrays erhöht, und die vorhandenen Elemente werden in das neue Array kopiert, bevor das neue Element hinzugefügt wird.

Wenn Count kleiner als die Kapazität ist, ist diese Methode eine O(1)-Operation. Wenn die Kapazität zur Anpassung an das neue Element erhöht werden muss, wird diese Methode zu einer O(n)-Operation, wobei n gleich Count ist.

Beispiel

Im folgenden Codebeispiel wird mit BaseAdd eine neue NameObjectCollectionBase mit Elementen aus einem IDictionary erstellt.

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

*/
#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

*/
import System.* ;
import System.Collections.* ;
import System.Collections.Specialized.* ;

public class MyCollection extends NameObjectCollectionBase
{   
    private DictionaryEntry _de =  new DictionaryEntry();

    // Gets a key-and-value pair (DictionaryEntry) using an index.
    /** @property 
     */
    public DictionaryEntry get_Item(int index)
    {
        _de.set_Key(this.BaseGetKey(index));
        _de.set_Value(this.BaseGet(index));
        return _de ;
    } //get_Item

    // Adds elements from an IDictionary into the new collection.
    public MyCollection(IDictionary d) 
    {
        IEnumerator objEnum = d.GetEnumerator();
        DictionaryEntry de;

        while (objEnum.MoveNext()) {
            de = (DictionaryEntry)(objEnum.get_Current());
            this.BaseAdd(((String)(de.get_Key())), de.get_Value());
        } 
            
    } //MyCollection
} //MyCollection

public class SamplesNameObjectCollectionBase
{
    public static void main(String[] args)
    {
        // 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.get_Count(); i++) {
            Console.WriteLine("[{0}] : {1}, {2}", System.Convert.ToString(i),
                myCol.get_Item( i).get_Key(), myCol.get_Item( i).get_Value());
        } 
    } //main 
} //SamplesNameObjectCollectionBase

/*
This code produces the following output.

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

*/

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

NameObjectCollectionBase-Klasse
NameObjectCollectionBase-Member
System.Collections.Specialized-Namespace