HybridDictionary.Add(Object, Object) Método

Definición

Agrega una entrada con la clave y el valor especificados a HybridDictionary.

public:
 virtual void Add(System::Object ^ key, System::Object ^ value);
public void Add (object key, object value);
public void Add (object key, object? value);
abstract member Add : obj * obj -> unit
override this.Add : obj * obj -> unit
Public Sub Add (key As Object, value As Object)

Parámetros

key
Object

Clave de la entrada que se va a agregar.

value
Object

Valor de la entrada que se va a agregar. El valor puede ser null.

Implementaciones

Excepciones

key es null.

Ya existe una entrada con la misma clave en HybridDictionary.

Ejemplos

En el ejemplo de código siguiente se agrega y se quitan los elementos de .HybridDictionary

#using <System.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
void PrintKeysAndValues( IDictionary^ myCol )
{
   Console::WriteLine( "   KEY                       VALUE" );
   IEnumerator^ myEnum = myCol->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      DictionaryEntry de =  safe_cast<DictionaryEntry>(myEnum->Current);
      Console::WriteLine( "   {0,-25} {1}", de.Key, de.Value );
   }

   Console::WriteLine();
}

int main()
{
   
   // Creates and initializes a new HybridDictionary.
   HybridDictionary^ myCol = gcnew HybridDictionary;
   myCol->Add( "Braeburn Apples", "1.49" );
   myCol->Add( "Fuji Apples", "1.29" );
   myCol->Add( "Gala Apples", "1.49" );
   myCol->Add( "Golden Delicious Apples", "1.29" );
   myCol->Add( "Granny Smith Apples", "0.89" );
   myCol->Add( "Red Delicious Apples", "0.99" );
   myCol->Add( "Plantain Bananas", "1.49" );
   myCol->Add( "Yellow Bananas", "0.79" );
   myCol->Add( "Strawberries", "3.33" );
   myCol->Add( "Cranberries", "5.98" );
   myCol->Add( "Navel Oranges", "1.29" );
   myCol->Add( "Grapes", "1.99" );
   myCol->Add( "Honeydew Melon", "0.59" );
   myCol->Add( "Seedless Watermelon", "0.49" );
   myCol->Add( "Pineapple", "1.49" );
   myCol->Add( "Nectarine", "1.99" );
   myCol->Add( "Plums", "1.69" );
   myCol->Add( "Peaches", "1.99" );
   
   // Displays the values in the HybridDictionary in three different ways.
   Console::WriteLine( "Initial contents of the HybridDictionary:" );
   PrintKeysAndValues( myCol );
   
   // Deletes a key.
   myCol->Remove( "Plums" );
   Console::WriteLine( "The collection contains the following elements after removing \"Plums\":" );
   PrintKeysAndValues( myCol );
   
   // Clears the entire collection.
   myCol->Clear();
   Console::WriteLine( "The collection contains the following elements after it is cleared:" );
   PrintKeysAndValues( myCol );
}

/*
This code produces output similar to the following:

Initial contents of the HybridDictionary:
   KEY                       VALUE
   Seedless Watermelon       0.49
   Nectarine                 1.99
   Cranberries               5.98
   Plantain Bananas          1.49
   Honeydew Melon            0.59
   Pineapple                 1.49
   Strawberries              3.33
   Grapes                    1.99
   Braeburn Apples           1.49
   Peaches                   1.99
   Red Delicious Apples      0.99
   Golden Delicious Apples   1.29
   Yellow Bananas            0.79
   Granny Smith Apples       0.89
   Gala Apples               1.49
   Plums                     1.69
   Navel Oranges             1.29
   Fuji Apples               1.29

The collection contains the following elements after removing "Plums":
   KEY                       VALUE
   Seedless Watermelon       0.49
   Nectarine                 1.99
   Cranberries               5.98
   Plantain Bananas          1.49
   Honeydew Melon            0.59
   Pineapple                 1.49
   Strawberries              3.33
   Grapes                    1.99
   Braeburn Apples           1.49
   Peaches                   1.99
   Red Delicious Apples      0.99
   Golden Delicious Apples   1.29
   Yellow Bananas            0.79
   Granny Smith Apples       0.89
   Gala Apples               1.49
   Navel Oranges             1.29
   Fuji Apples               1.29

The collection contains the following elements after it is cleared:
   KEY                       VALUE

*/
using System;
using System.Collections;
using System.Collections.Specialized;

public class SamplesHybridDictionary  {

   public static void Main()  {

      // Creates and initializes a new HybridDictionary.
      HybridDictionary myCol = new HybridDictionary();
      myCol.Add( "Braeburn Apples", "1.49" );
      myCol.Add( "Fuji Apples", "1.29" );
      myCol.Add( "Gala Apples", "1.49" );
      myCol.Add( "Golden Delicious Apples", "1.29" );
      myCol.Add( "Granny Smith Apples", "0.89" );
      myCol.Add( "Red Delicious Apples", "0.99" );
      myCol.Add( "Plantain Bananas", "1.49" );
      myCol.Add( "Yellow Bananas", "0.79" );
      myCol.Add( "Strawberries", "3.33" );
      myCol.Add( "Cranberries", "5.98" );
      myCol.Add( "Navel Oranges", "1.29" );
      myCol.Add( "Grapes", "1.99" );
      myCol.Add( "Honeydew Melon", "0.59" );
      myCol.Add( "Seedless Watermelon", "0.49" );
      myCol.Add( "Pineapple", "1.49" );
      myCol.Add( "Nectarine", "1.99" );
      myCol.Add( "Plums", "1.69" );
      myCol.Add( "Peaches", "1.99" );

      // Displays the values in the HybridDictionary in three different ways.
      Console.WriteLine( "Initial contents of the HybridDictionary:" );
      PrintKeysAndValues( myCol );

      // Deletes a key.
      myCol.Remove( "Plums" );
      Console.WriteLine( "The collection contains the following elements after removing \"Plums\":" );
      PrintKeysAndValues( myCol );

      // Clears the entire collection.
      myCol.Clear();
      Console.WriteLine( "The collection contains the following elements after it is cleared:" );
      PrintKeysAndValues( myCol );
   }

   public static void PrintKeysAndValues( IDictionary myCol )  {
      Console.WriteLine( "   KEY                       VALUE" );
      foreach ( DictionaryEntry de in myCol )
         Console.WriteLine( "   {0,-25} {1}", de.Key, de.Value );
      Console.WriteLine();
   }
}

/*
This code produces output similar to the following:

Initial contents of the HybridDictionary:
   KEY                       VALUE
   Seedless Watermelon       0.49
   Nectarine                 1.99
   Cranberries               5.98
   Plantain Bananas          1.49
   Honeydew Melon            0.59
   Pineapple                 1.49
   Strawberries              3.33
   Grapes                    1.99
   Braeburn Apples           1.49
   Peaches                   1.99
   Red Delicious Apples      0.99
   Golden Delicious Apples   1.29
   Yellow Bananas            0.79
   Granny Smith Apples       0.89
   Gala Apples               1.49
   Plums                     1.69
   Navel Oranges             1.29
   Fuji Apples               1.29

The collection contains the following elements after removing "Plums":
   KEY                       VALUE
   Seedless Watermelon       0.49
   Nectarine                 1.99
   Cranberries               5.98
   Plantain Bananas          1.49
   Honeydew Melon            0.59
   Pineapple                 1.49
   Strawberries              3.33
   Grapes                    1.99
   Braeburn Apples           1.49
   Peaches                   1.99
   Red Delicious Apples      0.99
   Golden Delicious Apples   1.29
   Yellow Bananas            0.79
   Granny Smith Apples       0.89
   Gala Apples               1.49
   Navel Oranges             1.29
   Fuji Apples               1.29

The collection contains the following elements after it is cleared:
   KEY                       VALUE

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

Public Class SamplesHybridDictionary   

   Public Shared Sub Main()

      ' Creates and initializes a new HybridDictionary.
      Dim myCol As New HybridDictionary()
      myCol.Add("Braeburn Apples", "1.49")
      myCol.Add("Fuji Apples", "1.29")
      myCol.Add("Gala Apples", "1.49")
      myCol.Add("Golden Delicious Apples", "1.29")
      myCol.Add("Granny Smith Apples", "0.89")
      myCol.Add("Red Delicious Apples", "0.99")
      myCol.Add("Plantain Bananas", "1.49")
      myCol.Add("Yellow Bananas", "0.79")
      myCol.Add("Strawberries", "3.33")
      myCol.Add("Cranberries", "5.98")
      myCol.Add("Navel Oranges", "1.29")
      myCol.Add("Grapes", "1.99")
      myCol.Add("Honeydew Melon", "0.59")
      myCol.Add("Seedless Watermelon", "0.49")
      myCol.Add("Pineapple", "1.49")
      myCol.Add("Nectarine", "1.99")
      myCol.Add("Plums", "1.69")
      myCol.Add("Peaches", "1.99")

      ' Displays the values in the HybridDictionary in three different ways.
      Console.WriteLine("Initial contents of the HybridDictionary:")
      PrintKeysAndValues(myCol)

      ' Deletes a key.
      myCol.Remove("Plums")
      Console.WriteLine("The collection contains the following elements after removing ""Plums"":")
      PrintKeysAndValues(myCol)

      ' Clears the entire collection.
      myCol.Clear()
      Console.WriteLine("The collection contains the following elements after it is cleared:")
      PrintKeysAndValues(myCol)

   End Sub

   Public Shared Sub PrintKeysAndValues(myCol As IDictionary)

      Console.WriteLine("   KEY                       VALUE")
      Dim de As DictionaryEntry
      For Each de In  myCol
         Console.WriteLine("   {0,-25} {1}", de.Key, de.Value)
      Next de
      Console.WriteLine()

   End Sub

End Class


'This code produces output similar to the following:
'
'Initial contents of the HybridDictionary:
'   KEY                       VALUE
'   Seedless Watermelon       0.49
'   Nectarine                 1.99
'   Cranberries               5.98
'   Plantain Bananas          1.49
'   Honeydew Melon            0.59
'   Pineapple                 1.49
'   Strawberries              3.33
'   Grapes                    1.99
'   Braeburn Apples           1.49
'   Peaches                   1.99
'   Red Delicious Apples      0.99
'   Golden Delicious Apples   1.29
'   Yellow Bananas            0.79
'   Granny Smith Apples       0.89
'   Gala Apples               1.49
'   Plums                     1.69
'   Navel Oranges             1.29
'   Fuji Apples               1.29
'
'The collection contains the following elements after removing "Plums":
'   KEY                       VALUE
'   Seedless Watermelon       0.49
'   Nectarine                 1.99
'   Cranberries               5.98
'   Plantain Bananas          1.49
'   Honeydew Melon            0.59
'   Pineapple                 1.49
'   Strawberries              3.33
'   Grapes                    1.99
'   Braeburn Apples           1.49
'   Peaches                   1.99
'   Red Delicious Apples      0.99
'   Golden Delicious Apples   1.29
'   Yellow Bananas            0.79
'   Granny Smith Apples       0.89
'   Gala Apples               1.49
'   Navel Oranges             1.29
'   Fuji Apples               1.29
'
'The collection contains the following elements after it is cleared:
'   KEY                       VALUE
'

Comentarios

Normalmente, un objeto que no tiene ninguna correlación entre su estado y su valor de código hash no se debe usar como clave. Por ejemplo, los objetos String son mejores que los objetos StringBuilder para su uso como claves.

Una clave no puede ser null, pero un valor puede.

También puede usar la Item[] propiedad para agregar nuevos elementos estableciendo el valor de una clave que no existe en HybridDictionary; por ejemplo, myCollection["myNonexistentKey"] = myValue. Sin embargo, si la clave especificada ya existe en HybridDictionary, al establecer la propiedad se Item[] sobrescribe el valor anterior. En cambio, el Add método no modifica los elementos existentes.

Cuando el número de elementos es mayor que el tamaño óptimo para , ListDictionarylos elementos se copian de a ListDictionary .Hashtable Sin embargo, esto solo sucede una vez. Si la colección ya está almacenada en Hashtable y el número de elementos cae por debajo del tamaño óptimo para , ListDictionaryla colección permanece en .Hashtable

Este método es una operación O(1).

Se aplica a

Consulte también