NameObjectCollectionBase.BaseAdd(String, Object) Méthode

Définition

Ajoute une entrée avec la clé et la valeur spécifiées dans l’instance 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)

Paramètres

name
String

Clé String de l’entrée à ajouter. La clé peut être null.

value
Object

Valeur Object de l’entrée à ajouter. La valeur peut être null.

Exceptions

La collection est en lecture seule.

Exemples

L’exemple de code suivant utilise BaseAdd pour créer un nouveau NameObjectCollectionBase avec des éléments à partir d’un 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

Remarques

Si Count elle est déjà égale à la capacité, la capacité de l’élément NameObjectCollectionBase est augmentée en réaffectant automatiquement le tableau interne et les éléments existants sont copiés dans le nouveau tableau avant l’ajout du nouvel élément.

Si Count elle est inférieure à la capacité, cette méthode est une opération O(1). Si la capacité doit être augmentée pour prendre en charge le nouvel élément, cette méthode devient une opération O(n), où n est Count.

S’applique à