C# | Copia de las entradas de HybridDictionary en una instancia de array – Part 1

El método HybridDictionary.CopyTo(Array, Int32) se usa para copiar las entradas de HybridDictionary en una instancia de Array unidimensional en el índice especificado.

Sintaxis:

public void CopyTo (Array array, int index);

Parámetros:

array : la array unidimensional que es el destino de los objetos DictionaryEntry copiados de HybridDictionary. El Array debe tener una indexación basada en cero .

índice: el índice basado en cero en la array en el que comienza la copia.

Excepciones:

  • ArgumentNullException: si la array es nula.
  • ArgumentOutOfRangeException: si el índice es menor que cero.
  • InvalidCastException: si el tipo del HybridDictionary de origen no se puede convertir automáticamente al tipo de la array de destino.
  • ArgumentException: si la array es multidimensional O el número de elementos en el HybridDictionary de origen es mayor que el espacio disponible desde arrayIndex hasta el final de la array de destino.

Los siguientes programas ilustran el uso del método HybridDictionary.CopyTo(Array, Int32) :

Ejemplo 1:

// C# code to copy the HybridDictionary
// entries to a one-dimensional Array
// instance at the specified index.
using System;
using System.Collections;
using System.Collections.Specialized;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a HybridDictionary named myDict
        HybridDictionary myDict = new HybridDictionary();
  
        // Adding key/value pairs in myDict
        myDict.Add("A", "Apple");
        myDict.Add("B", "Banana");
        myDict.Add("C", "Cat");
        myDict.Add("D", "Dog");
        myDict.Add("E", "Elephant");
        myDict.Add("F", "Fish");
  
        // Creating a one-dimensional Array named myArr
        DictionaryEntry[] myArr = new DictionaryEntry[myDict.Count];
  
        // copying the HybridDictionary entries
        // to a one-dimensional Array instance
        // at the specified index
        myDict.CopyTo(myArr, 0);
  
        for (int i = 0; i < myArr.Length; i++)
            Console.WriteLine(myArr[i].Key + " --> " 
                                  + myArr[i].Value);
    }
}

Producción:

A --> Apple
B --> Banana
C --> Cat
D --> Dog
E --> Elephant
F --> Fish

Ejemplo 2:

// C# code to copy the HybridDictionary
// entries to a one-dimensional Array
// instance at the specified index.
using System;
using System.Collections;
using System.Collections.Specialized;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a HybridDictionary named myDict
        HybridDictionary myDict = new HybridDictionary();
  
        // Adding key/value pairs in myDict
        myDict.Add("I", "first");
        myDict.Add("II", "second");
        myDict.Add("III", "third");
        myDict.Add("IV", "fourth");
        myDict.Add("V", "fifth");
  
        // Creating a one-dimensional Array named myArr
        DictionaryEntry[] myArr = new DictionaryEntry[myDict.Count];
  
        // copying the HybridDictionary entries
        // to a one-dimensional Array instance
        // at the specified index
        // This should raise "ArgumentOutOfRangeException"
        // as index is less than 0
        myDict.CopyTo(myArr, -2);
  
        for (int i = 0; i < myArr.Length; i++)
            Console.WriteLine(myArr[i].Key + " --> " 
                                  + myArr[i].Value);
    }
}

Error de tiempo de ejecución:

Excepción no controlada:
System.ArgumentOutOfRangeException: el índice es menor que cero.
Nombre del parámetro: índice

Nota:

  • Los elementos se copian en Array en el mismo orden en que el enumerador itera a través de HybridDictionary.
  • Para copiar solo las claves en HybridDictionary, use HybridDictionary.Keys.CopyTo .
  • Para copiar solo los valores en HybridDictionary, use HybridDictionary.Values.CopyTo .
  • Este método es una operación O(n), donde n es Count.

Referencia:

Publicación traducida automáticamente

Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *