Hashtable.CopyTo(Array, Int32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
public:
virtual void CopyTo(Array ^ array, int arrayIndex);
public virtual void CopyTo (Array array, int arrayIndex);
abstract member CopyTo : Array * int -> unit
override this.CopyTo : Array * int -> unit
Public Overridable Sub CopyTo (array As Array, arrayIndex As Integer)
Parámetros
- array
- Array
Array unidimensional que constituye el destino de los objetos DictionaryEntry copiados de Hashtable. Array debe tener una indización de base cero.
- arrayIndex
- Int32
Índice de base cero en la array
donde comienza la copia.
Implementaciones
Excepciones
array
es null
.
arrayIndex
es menor que cero.
array
es multidimensional.
O bien
El número de elementos de la Hashtable de origen es mayor que el espacio disponible desde arrayIndex
hasta el final de la array
de destino.
El tipo de la Hashtable de origen no puede convertirse automáticamente al tipo de la array
de destino.
Ejemplos
En el ejemplo siguiente se muestra cómo copiar la lista de claves o la lista de valores de en en Hashtable una unidimensional Array.
using namespace System;
using namespace System::Collections;
void PrintValues( array<String^>^myArr, char mySeparator );
int main()
{
// Creates and initializes the source Hashtable.
Hashtable^ mySourceHT = gcnew Hashtable;
mySourceHT->Add( "A", "valueA" );
mySourceHT->Add( "B", "valueB" );
// Creates and initializes the one-dimensional target Array.
array<String^>^myTargetArray = gcnew array<String^>(15);
myTargetArray[ 0 ] = "The";
myTargetArray[ 1 ] = "quick";
myTargetArray[ 2 ] = "brown";
myTargetArray[ 3 ] = "fox";
myTargetArray[ 4 ] = "jumps";
myTargetArray[ 5 ] = "over";
myTargetArray[ 6 ] = "the";
myTargetArray[ 7 ] = "lazy";
myTargetArray[ 8 ] = "dog";
// Displays the values of the target Array.
Console::WriteLine( "The target Array contains the following before:" );
PrintValues( myTargetArray, ' ' );
// Copies the keys in the source Hashtable to the target Hashtable, starting at index 6.
Console::WriteLine( "After copying the keys, starting at index 6:" );
mySourceHT->Keys->CopyTo( myTargetArray, 6 );
// Displays the values of the target Array.
PrintValues( myTargetArray, ' ' );
// Copies the values in the source Hashtable to the target Hashtable, starting at index 6.
Console::WriteLine( "After copying the values, starting at index 6:" );
mySourceHT->Values->CopyTo( myTargetArray, 6 );
// Displays the values of the target Array.
PrintValues( myTargetArray, ' ' );
}
void PrintValues( array<String^>^myArr, char mySeparator )
{
for ( int i = 0; i < myArr->Length; i++ )
Console::Write( "{0}{1}", mySeparator, myArr[ i ] );
Console::WriteLine();
}
/*
This code produces the following output.
The target Array contains the following before:
The quick brown fox jumps over the lazy dog
After copying the keys, starting at index 6:
The quick brown fox jumps over B A dog
After copying the values, starting at index 6:
The quick brown fox jumps over valueB valueA dog
*/
using System;
using System.Collections;
public class SamplesHashtable
{
public static void Main()
{
// Creates and initializes the source Hashtable.
var mySourceHT = new Hashtable();
mySourceHT.Add("A", "valueA");
mySourceHT.Add("B", "valueB");
// Creates and initializes the one-dimensional target Array.
var myTargetArray = new String[15];
myTargetArray[0] = "The";
myTargetArray[1] = "quick";
myTargetArray[2] = "brown";
myTargetArray[3] = "fox";
myTargetArray[4] = "jumps";
myTargetArray[5] = "over";
myTargetArray[6] = "the";
myTargetArray[7] = "lazy";
myTargetArray[8] = "dog";
// Displays the values of the target Array.
Console.WriteLine("The target Array contains the following before:");
PrintValues(myTargetArray, ' ');
// Copies the keys in the source Hashtable to the target Hashtable, starting at index 6.
Console.WriteLine("After copying the keys, starting at index 6:");
mySourceHT.Keys.CopyTo(myTargetArray, 6);
// Displays the values of the target Array.
PrintValues(myTargetArray, ' ');
// Copies the values in the source Hashtable to the target Hashtable, starting at index 6.
Console.WriteLine("After copying the values, starting at index 6:");
mySourceHT.Values.CopyTo(myTargetArray, 6);
// Displays the values of the target Array.
PrintValues(myTargetArray, ' ');
}
public static void PrintValues(String[] myArr, char mySeparator)
{
for (int i = 0; i < myArr.Length; i++)
Console.Write($"{mySeparator}{myArr[i]}");
Console.WriteLine();
}
}
/*
This code produces the following output.
The target Array contains the following before:
The quick brown fox jumps over the lazy dog
After copying the keys, starting at index 6:
The quick brown fox jumps over B A dog
After copying the values, starting at index 6:
The quick brown fox jumps over valueB valueA dog
*/
Imports System.Collections
Public Class SamplesHashtable
Public Shared Sub Main()
' Creates and initializes the source Hashtable.
Dim mySourceHT As New Hashtable()
mySourceHT.Add("A", "valueA")
mySourceHT.Add("B", "valueB")
' Creates and initializes the one-dimensional target Array.
Dim myTargetArray(14) As String
myTargetArray(0) = "The"
myTargetArray(1) = "quick"
myTargetArray(2) = "brown"
myTargetArray(3) = "fox"
myTargetArray(4) = "jumps"
myTargetArray(5) = "over"
myTargetArray(6) = "the"
myTargetArray(7) = "lazy"
myTargetArray(8) = "dog"
' Displays the values of the target Array.
Console.WriteLine("The target Array contains the following before:")
PrintValues(myTargetArray, " "c)
' Copies the keys in the source Hashtable to the target Hashtable, starting at index 6.
Console.WriteLine("After copying the keys, starting at index 6:")
mySourceHT.Keys.CopyTo(myTargetArray, 6)
' Displays the values of the target Array.
PrintValues(myTargetArray, " "c)
' Copies the values in the source Hashtable to the target Hashtable, starting at index 6.
Console.WriteLine("After copying the values, starting at index 6:")
mySourceHT.Values.CopyTo(myTargetArray, 6)
' Displays the values of the target Array.
PrintValues(myTargetArray, " "c)
End Sub
Public Shared Sub PrintValues(myArr As String(), mySeparator As Char)
For i As Integer = 0 To myArr.Length - 1
Console.Write($"{mySeparator}{myArr(i)}")
Next i
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' The target Array contains the following before:
' The quick brown fox jumps over the lazy dog
' After copying the keys, starting at index 6:
' The quick brown fox jumps over A B dog
' After copying the values, starting at index 6:
' The quick brown fox jumps over valueA valueB dog
Comentarios
Los elementos se copian en en Array el mismo orden en el que el enumerador recorre en iteración .Hashtable
Para copiar solo las claves de Hashtable, use Hashtable.Keys.CopyTo
.
Para copiar solo los valores de Hashtable, use Hashtable.Values.CopyTo
.
Este método es una O(n)
operación, donde n
es Count.