csharp-que-son-arrays

Qué son y cómo usar los arrays en C#

Un Array es una colección de variables del mismo del mismo tipo, y de un tamaño fijo. Estas se almacenan en ubicaciones de memoria contiguas.

Cada elemento del array puede accederse utilizando un índice numérico, comenzando desde cero. Para ello usamos el operador [].

Los arrays en C# son de tipo System.Array. Esta clase nos proporciona métodos y propiedades necesarias para trabajar con arrays.

Declaración de arrays

La sintaxis básica para declarar un Array es:

Tipo[] nombreArray;

Siendo,

  • Tipo, tipo de datos que contendrá

Fijaos que no es necesario indicar el número de elemento del Array, porque sólo estamos definiendo una variable que referencia un Array.

Por ejemplo, para declarar un array de enteros:

int[] misNumeros;

En nuestra variable misNumeros ahora podemos referenciar cualquier Array.

Creación de un arrays

Una vez declarado un Array, antes de poder usarlo debemos inicializarlo. Con ello asignaremos la memoria para almacenar sus elementos.

Para ello podemos crear un Array “vacío”. En este caso, todos los valores del array de inicializan al valor por defecto del tipo.

Por ejemplo, esto crearía un array con 5 valores int inicializados a 0, porque 0 es el valor por defecto para el tipo int.

int[] numeros = new int[5]; // Array de 5 elementos

Inicialización de arrays

Alternativamente, podemos inicializar el Array con una colección de valores datos. Por ejemplo así:

// sintaxis recomendada
int[] numeros = [ 1, 2, 3, 4, 5 ];



// equivalente a esto
int[] numeros = { 1, 2, 3, 4, 5 };
int[] numeros = new int[] { 1, 2, 3, 4, 5 };

Uso del array

Acceso a elementos de un array

Cada elemento de un array se accede utilizando un índice, que comienza desde 0. La sintaxis para acceder a un elemento es:

nombreArray[indice]

Por ejemplo:

int[] numeros = { 1, 2, 3, 4, 5 };
int primerNumero = numeros[0]; // primerNumero será 1

Modificación de elementos de un array

Los elementos de un array se pueden modificar asignando nuevos valores a los índices específicos:

int[] numeros = { 1, 2, 3, 4, 5 };
numeros[2] = 10; // El tercer elemento del array ahora será 10

Métodos y propiedades útiles array

Las listas en C# ofrecen una amplia gama de operaciones que nos permiten manipular y acceder a sus elementos de manera eficiente. Veamos algunas de ellas:

Longitud del array

La propiedad Length devuelve el número total de elementos en un array:

int[] numeros = { 1, 2, 3, 4, 5 };
int longitud = numeros.Length; // longitud será 5

Ordenar un array

El método Sort de la clase Array permite ordenar los elementos de un array:

int[] numeros = { 5, 3, 1, 4, 2 };
Array.Sort(numeros); // numeros ahora será { 1, 2, 3, 4, 5 }

Invertir un array

El método Reverse invierte el orden de los elementos en un array:

int[] numeros = { 1, 2, 3, 4, 5 };
Array.Reverse(numeros); // numeros ahora será { 5, 4, 3, 2, 1 }

Ejemplos prácticos

Calcular la media de un array de enteros

Este ejemplo muestra cómo calcular la media de los elementos en un array de enteros.

int[] numeros = { 1, 2, 3, 4, 5 }; // Declaramos el array con los números
int suma = 0; // Variable para almacenar la suma de los elementos

for (int i = 0; i < numeros.Length; i++)
{
    suma += numeros[i]; // Suma cada elemento del array a 'suma'
}

double media = (double)suma / numeros.Length; // Calcula la media
Console.WriteLine($"La media es: {media}");

Buscar el valor máximo en un array

Este ejemplo muestra cómo buscar el valor máximo en un array de enteros.

int[] numeros = { 1, 2, 3, 4, 5 }; // Declaramos el array con los números
int maximo = numeros[0]; // Inicializa 'maximo' con el primer elemento del array

for (int i = 1; i < numeros.Length; i++)
{
    if (numeros[i] > maximo) // Compara cada elemento con 'maximo'
    {
        maximo = numeros[i]; // Actualiza 'maximo' si se encuentra un valor mayor
    }
}

Console.WriteLine($"El valor máximo es: {maximo}");

Contar cuántos elementos son mayores que un valor dado

Este ejemplo cuenta cuántos elementos en un array son mayores que un valor específico.

int[] numeros = { 1, 2, 3, 4, 5 }; // Declaramos el array con los números
int valor = 3; // Valor de referencia
int contador = 0; // Variable para contar los elementos

for (int i = 0; i < numeros.Length; i++)
{
    if (numeros[i] > valor) // Verifica si el elemento es mayor que 'valor'
    {
        contador++; // Incrementa el contador si la condición es verdadera
    }
}

Console.WriteLine($"Hay {contador} elementos mayores que {valor}");

Encontrar la posición de un elemento en un array

Este ejemplo muestra cómo encontrar la posición de un elemento específico en un array.

int[] numeros = { 1, 2, 3, 4, 5 }; // Declaramos el array con los números
int buscar = 4; // Elemento a buscar
int posicion = -1; // Inicializa la posición en -1 (valor que indica no encontrado)

for (int i = 0; i < numeros.Length; i++)
{
    if (numeros[i] == buscar) // Compara cada elemento con 'buscar'
    {
        posicion = i; // Actualiza 'posicion' con el índice del elemento encontrado
        break; // Sale del bucle
    }
}

if (posicion != -1)
{
    Console.WriteLine($"El número {buscar} se encuentra en la posición {posicion}");
}
else
{
    Console.WriteLine($"El número {buscar} no se encuentra en el array");
}