En C#, una array es un grupo de variables del mismo tipo a las que se hace referencia mediante un nombre común. Y cada elemento de datos se llama un elemento de la array. Los tipos de datos de los elementos pueden ser cualquier tipo de datos válido como char, int, float, etc. y los elementos se almacenan en una ubicación contigua.
ArrayList representa una colección ordenada de un objeto que se puede indexar individualmente. Es básicamente una alternativa a una array. Permite la asignación de memoria dinámica, agregando, buscando y ordenando elementos en la lista.
A continuación se muestran los dos métodos para convertir una ArrayList en una array:
Método 1: Convertir una ArrayList en una array de objeto
Sintaxis:
public virtual object[] ToArray ();
Explicación:
- Copia los elementos de ArrayList a una nueva array de objetos.
- Devuelve una array de objetos que contiene copias de los elementos de ArrayList.
Ejemplo: en el siguiente programa, mylist es ArrayList y le agregamos 7 elementos que son el nombre de los días de la semana. Luego, estamos creando una array de objetos obj1 y usando el método ToArray con mylist, asignaremos los elementos de Arraylist a la array de objetos. Finalmente, usando el bucle foreach puede imprimir la array convertida requerida.
CSharp
// C# program to illustrate ToArray() Method using System; using System.Collections; class GFG { // Main Method public static void Main() { // Create and initializing ArrayList ArrayList mylist = new ArrayList(7); mylist.Add("Monday"); mylist.Add("Tuesday"); mylist.Add("Wednesday"); mylist.Add("Thursday"); mylist.Add("Friday"); mylist.Add("Saturday"); mylist.Add("Sunday"); // Copy the data of Arraylist into // the object Array Using ToArray() // method object[] obj1 = mylist.ToArray(); foreach(string st in obj1) { Console.WriteLine(st); } } }
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
Método 2: convertir una ArrayList en una array del tipo especificado
Sintaxis:
public virtual Array ToArray (Type t);
Aquí, t es el tipo de elemento de la array de destino para crear y copiar elementos.
Explicación:
- Copia los elementos de ArrayList a una nueva array del tipo de elemento especificado.
- Devuelve una array del tipo de elemento especificado que contiene copias de los elementos de ArrayList.
- Lanza ArgumentNullException si el valor de t es nulo.
- Lanza InvalidCastException si el tipo de ArrayList de origen no se puede convertir automáticamente al tipo especificado.
Ejemplo 1:
CSharp
// C# program to illustrate the use // of ToArray(Type) Method in the // conversion of ArrayList to Array using System; using System.Collections; class GFG { // Main Method public static void Main() { // Create and initialize new array ArrayList mylist = new ArrayList(5); mylist.Add("Ruby"); mylist.Add("C#"); mylist.Add("C++"); mylist.Add("Java"); mylist.Add("Perl"); // Copy the data of Arraylist into // the string Array Using // ToArray(Type) method string[] str = (string[])mylist.ToArray(typeof(string)); // Display the data of str string foreach(string j in str) { Console.WriteLine(j); } } }
Ruby C# C++ Java Perl
Explicación del código: Aquí estamos convirtiendo una ArrayList en una array del tipo especificado, es decir, tipo de string. Para la conversión, debe usar el método ToArray (Tipo) junto con la palabra clave typeof . Y luego tienes que convertirlo explícitamente al tipo especificado. Aquí puede ver la línea de código, string[] str = (string[])mylist.ToArray(typeof(string)); . (string[]) se usa para mylist para convertirlo en un tipo de array de strings. Hay otra alternativa para esta línea de código como se muestra en el siguiente ejemplo.
Ejemplo 2:
CSharp
// C# program to illustrate the use // of ToArray(Type) Method in the // conversion of ArrayList to Array using System; using System.Collections; class GFG { // Main Method public static void Main() { // Create and initialize new array ArrayList mylist = new ArrayList(5); mylist.Add("Ruby"); mylist.Add("C#"); mylist.Add("C++"); mylist.Add("Java"); mylist.Add("Perl"); // Copy the data of Arraylist into // the string Array Using // ToArray(Type) method // see this clearly as here we // are using as keyword string[] str = mylist.ToArray(typeof(string)) as string[]; // Display the data of str string foreach(string j in str) { Console.WriteLine(j); } } }
Ruby C# C++ Java Perl
¿Qué sucederá si ArrayList no contiene todos los elementos del mismo tipo?
Si ArrayList no contiene los elementos del mismo tipo, entonces su conversión (ArrayList a Array) arrojará InvalidCastException .
Ejemplo:
CSharp
// C# program to illustrate the use // of ToArray(Type) Method in the // conversion of ArrayList to Array using System; using System.Collections; class GFG { // Main Method public static void Main() { // Create and initialize new array ArrayList mylist = new ArrayList(5); mylist.Add("Ruby"); mylist.Add(5); mylist.Add("C++"); mylist.Add(7); mylist.Add("Perl"); // It will throw the InvalidCastException // Copy the data of Arraylist into // the string Array Using // ToArray(Type) method string[] str = mylist.ToArray(typeof(string)) as string[]; // Display the data of str string foreach(string j in str) { Console.WriteLine(j); } } }
Error de tiempo de ejecución:
Excepción no controlada:
System.InvalidCastException: la conversión especificada no es válida.
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA