La clase System.Array

    En realidad, todas las tablas que definamos, sea cual sea el tipo de elementos que contengan, son objetos que derivan de System.Array. Es decir, van a disponer de todos los miembros que se han definido para esta clase, entre los que son destacables:

  • Length: Campo[11] de sólo lectura que informa del número total de elementos que contiene la tabla. Si la tabla tiene más de una dimensión o nivel de anidación indica el número de elementos de todas sus dimensiones y niveles. Por ejemplo:


 int[] tabla = {1,2,3,4};                      
 int[][] tabla2 = {new int[] {1,2}, new int[] {3
 int[,] tabla3 = {{1,2},{3,4,5,6}};            
                                               
 Console.WriteLine(tabla.Length);   //Imprime 4
 Console.WriteLine(tabla2.Length);  //Imprime 5
 Console.WriteLine(tabla3.Length);  //Imprime 6

  • Rank: Campo de sólo lectura que almacena el número de dimensiones de la tabla. Obviamente si la tabla no es multidimensional valdrá 1. Por ejemplo:


 int[] tabla = {1,2,3,4};
 int[][] tabla2 = {new int[] {1,2}, new int[] {3,4,5}};
 int[,] tabla3 = {{1,2},{3,4,5,6}};
 
 Console.WriteLine(tabla.Rank);   //Imprime 1
 Console.WriteLine(tabla2.Rank);  //Imprime 1
 Console.WriteLine(tabla3.Rank);  //Imprime 2

  • int GetLength(int dimensión): Método que devuelve el número de elementos de la dimensión especificada. Las dimensiones se indican empezando a contar desde cero, por lo que si quiere obtenerse el número de elementos de la primera dimensión habrá que usar GetLength(0), si se quiere obtener los de la segunda habrá que usar GetLength(1), etc. Por ejemplo:


 int[,] tabla = {{1,2}, {3,4,5,6}};
 Console.WriteLine(tabla.GetLength(0));  // Imprime 2
 Console.WriteLine(tabla.GetLength(1));  // Imprime 4

  • void CopyTo(Array destino, int posición): Copia todos los elementos de la tabla sobre la que se aplica en la tabla destino a partir de la posición de ésta indicada. Por ejemplo:


 int[] tabla1 = {1,2,3,4};
 int[] tabla2 = {5,6,7,8, 9};
 tabla1.CopyTo(tabla2,0); 
// A partir de ahora, tabla2 contendrá {5,1,2,3,4}

    Ambas tablas deben ser unidimensionales, la tabla de destino hade ser de un tipo que pueda almacenar los objetos de la tabla origen, el índice especificado ha de ser válido (mayor o igual que cero y menor que el tamaño de la tabla de destino) y no ha de valer null ninguna de las tablas. Si no fuese así, saltarían excepciones de diversos tipos informando del error cometido (en la documentación del SDK puede ver cuáles son en concreto)     

    Aparte de los miembros aquí señalados, System.Array también cuenta con muchos otros que facilitan realizar tareas tan frecuentes como búsquedas de elementos, ordenaciones, etc. Para más información sobre ellos puede consultarse la documentación del SDK.

La clase System.Array
José Antonio González Seco

José Antonio es experto en tecnologias Microsoft. Imparte cursos y conferencias en congresos sobre C# y .NET en Universidades de toda España (Sevilla, Barcelona, San Sebastián, Valencia, Oviedo, etc.) en representación de grandes empresas como Microsoft.
Fecha de alta:02/10/2006
Última actualizacion:02/10/2006
Visitas totales:40840
Valorar el contenido:
Últimas consultas realizadas en los foros
Últimas preguntas sin contestar en los foros de devjoker.com