C# Arrays (Array)
Un array es una colección secuencial de tamaño fijo que almacena elementos del mismo tipo. Un array es una colección utilizada para almacenar datos; generalmente se considera que un array es una colección de variables del mismo tipo.
Declarar una variable de array no implica declarar variables individuales como number0, number1, ..., number99, sino declarar una variable como numbers y luego usar numbers
Todos los arrays están compuestos por ubicaciones de memoria contiguas. La dirección más baja corresponde al primer elemento y la dirección más alta corresponde al último elemento.
Declaración de arrays
Para declarar un array en C#, puede utilizar la siguiente sintaxis:
datatype[] arrayName;
Donde:
- datatypeSe utiliza para especificar el tipo de los elementos almacenados en el array.
- [ ]Especifica el rango (dimensión) del array. El rango especifica el tamaño del array.
- arrayNameEspecifica el nombre del array.
Por ejemplo:
double[] balance;
Inicialización de arrays
Declarar un array no lo inicializa en la memoria. Al inicializar una variable de array, puede asignarle valores.
Un array es un tipo de referencia, por lo que necesita utilizar lanewpalabra clave para crear una instancia del array.
Por ejemplo:
double[] balance = new double[10];
Asignación a arrays
Puede asignar un valor a un elemento individual del array mediante un número de índice, por ejemplo:
double[] balance = new double[10]; balance[0] = 4500.0;
Puede asignar valores al array al mismo tiempo que lo declara, por ejemplo:
double[] balance = { 2340.0, 4523.69, 3421.0};
También puede crear e inicializar un array, por ejemplo:
int [] marks = new int[5] { 99, 98, 92, 97, 95};
En los casos anteriores, también puede omitir el tamaño del array, por ejemplo:
int [] marks = new int[] { 99, 98, 92, 97, 95};
También puede asignar una variable de array a otra variable de array de destino. En este caso, el destino y el origen apuntarán a la misma ubicación de memoria:
int [] marks = new int[] { 99, 98, 92, 97, 95};
int[] score = marks;
Cuando crea un array, el compilador de C# inicializa implícitamente cada elemento del array con un valor predeterminado según el tipo del array. Por ejemplo, todos los elementos de un array int se inicializan a 0.
Acceso a elementos de arrays
Se accede a los elementos mediante el nombre del array con un índice. Esto se logra colocando el índice del elemento entre corchetes después del nombre del array. Por ejemplo:
double salary = balance[9];
A continuación se muestra un ejemplo que utiliza los tres conceptos mencionados anteriormente: declaración, asignación y acceso a arrays:
Ejemplo
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
int [] n = new int[10]; /* n es un array con 10 enteros */
int i,j;
/* Inicializa los elementos del array n */
for ( i = 0; i < 10; i++ )
{
n[ i ] = i + 100;
}
/* Muestra el valor de cada elemento del array */
for (j = 0; j < 10; j++ )
{
Console.WriteLine("Element[{0}] = {1}", j, n[j]);
}
Console.ReadKey();
}
}
}
Cuando el código anterior se compila y ejecuta, produce los siguientes resultados:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
Uso deforeachbucles
En el ejemplo anterior, utilizamos un bucle for para acceder a cada elemento del array. También puede utilizar una foreachsentencia para recorrer el array.
En el siguiente ejemplo, usamos foreach para recorrer un array:
Ejemplo
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
int [] n = new int[10]; /* n es un array con 10 enteros */
/* Inicializa los elementos del array n */
for ( int i = 0; i < 10; i++ )
{
n[i] = i + 100;
}
/* Muestra el valor de cada elemento del array */
foreach (int j in n )
{
int i = j-100;
Console.WriteLine("Element[{0}] = {1}", i, j);
}
Console.ReadKey();
}
}
}
Cuando el código anterior se compila y ejecuta, produce los siguientes resultados:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
Detalles de arrays en C#
En C#, los arrays son muy importantes y es necesario conocer más detalles. A continuación se enumeran algunos conceptos importantes relacionados con los arrays que todo programador de C# debe conocer:
| Concepto | Descripción |
|---|---|
| Arrays multidimensionales | C# admite arrays multidimensionales. La forma más simple de un array multidimensional es el array bidimensional. |
| Arrays escalonados | C# admite arrays escalonados, es decir, arrays de arrays. |
| Pasar arrays a funciones | Puede pasar a una función un puntero al array especificando el nombre del array sin índice. |
| Arrays de parámetros | Esto se utiliza generalmente para pasar una cantidad desconocida de parámetros a una función. |
| Clase Array | Definida en el espacio de nombres System, es la clase base de todos los arrays y proporciona diversas propiedades y métodos para los arrays. |