Array en C#

¿Qué es array en C#?

Un array en C# es una estructura de datos que permite almacenar un conjunto de valores del mismo tipo. Los valores se almacenan en posiciones consecutivas de memoria y se accede a ellos mediante un índice numérico que indica la posición dentro del array.

Los arrays en C# pueden ser unidimensionales, bidimensionales (matrices) o de mayor dimensión. Los arrays unidimensionales son los más comunes y se definen especificando el tipo de datos y el tamaño del array al declararlo.

Crear un array en C#

Para crear un array en C#, debes declarar una variable que represente el array y especificar el tipo de elementos que el array contendrá. A continuación, se muestra un ejemplo de cómo crear un array de enteros en C#:


int[] miArray = new int[5];

Lenguaje del código: C# (cs)

En este ejemplo, se declara una variable llamada miArray, que es un array de enteros con una longitud de 5 elementos. Se utiliza la palabra clave new para crear una instancia del array, seguida del tipo de elemento que contendrá y la longitud del array entre corchetes.

También puedes inicializar el array con valores iniciales, como se muestra en el siguiente ejemplo:


int[] miArray = { 1, 2, 3, 4, 5 };

Lenguaje del código: C# (cs)

En este ejemplo, se declara y se inicializa un array de enteros llamado miArray con los valores iniciales de 1, 2, 3, 4 y 5.

Acceder a un elemento de Array

Para acceder a un elemento específico de un arreglo en C#, debes usar el índice del elemento. El índice es un número entero que representa la posición del elemento en el arreglo. Los índices en C# comienzan en cero, lo que significa que el primer elemento tiene un índice de cero.

Para acceder a un elemento de un arreglo en C#, debes usar la siguiente sintaxis:


nombreArreglo[indice]

Lenguaje del código: C# (cs)

donde nombreArreglo es el nombre del arreglo y indice es el número de índice del elemento que deseas acceder.

Por ejemplo, si tienes un arreglo de nombres de frutas y deseas acceder al segundo elemento, que tiene un índice de 1, puedes usar la siguiente sintaxis:


string[] frutas = { "manzana", "banana", "naranja", "piña", "fresa" };
string segundaFruta = frutas[1]; // "banana"

Lenguaje del código: C# (cs)

En este ejemplo, frutas[1] accede al segundo elemento del arreglo frutas, que es «banana», y lo almacena en la variable segundaFruta.

Cambiar un elementos de Array

Para cambiar un elemento en un arreglo (array) en C#, primero debes acceder al elemento que deseas cambiar, y luego asignarle un nuevo valor. Puedes hacer esto de la siguiente manera:

Supongamos que tenemos un arreglo de enteros llamado numeros con 5 elementos y queremos cambiar el segundo elemento por un nuevo valor:


int[] numeros = { 10, 20, 30, 40, 50 };

numeros[1] = 25;

Console.WriteLine(numeros[1]); // Output: 25

Lenguaje del código: C# (cs)

En este ejemplo, hemos cambiado el valor del segundo elemento (numeros[1]) a 25. Luego, hemos utilizado la función Console.WriteLine para imprimir el nuevo valor del segundo elemento.

La salida será: 25.

Longitud de un Array

La longitud de un array en C# se puede obtener a través de la propiedad Length del objeto array. La propiedad Length devuelve el número de elementos en el array.


int[] numeros = { 1, 2, 3, 4, 5 };
int longitud = numeros.Length;
Console.WriteLine("La longitud del array es: " + longitud);

Lenguaje del código: C# (cs)

En este ejemplo, se crea un array de enteros llamado «numeros» que contiene los valores del 1 al 5. Luego se obtiene la longitud del array utilizando la propiedad «Length» y se almacena en la variable «longitud«.

Finalmente, se muestra la longitud del array en la consola mediante el método «WriteLine» de la clase «Console«.

Otras formas de crear un Array

Además de la forma tradicional de declarar y crear un array en C# utilizando la palabra clave new, existen otras formas de crear y asignar valores a un array:

  1. Inicialización de matriz: se puede inicializar una matriz al declararla y asignarle valores al mismo tiempo. Por ejemplo:

int[] numeros = { 1, 2, 3, 4, 5 };

Lenguaje del código: C# (cs)

2. Utilizando métodos de la clase Array: a continuación se muestra un ejemplo de cómo crear un array utilizando el método CreateInstance de la clase Array:

// Crear un array de enteros de tamaño 5
Array array = Array.CreateInstance(typeof(int), 5);

// Asignar valores a los elementos del array
array.SetValue(10, 0);
array.SetValue(20, 1);
array.SetValue(30, 2);
array.SetValue(40, 3);
array.SetValue(50, 4);

// Recorrer el array y mostrar sus elementos
for (int i = 0; i < array.Length; i++)
{
    Console.WriteLine("array[{0}] = {1}", i, array.GetValue(i));
}

Lenguaje del código: C# (cs)

En este ejemplo, se crea un array de enteros de tamaño 5 utilizando el método CreateInstance de la clase Array. Luego, se utilizan los métodos SetValue y GetValue para asignar y recuperar los valores de los elementos del array.

Finalmente, se recorre el array con un bucle for y se muestra cada uno de sus elementos en la consola.

La clase Array también proporciona otros métodos útiles para trabajar con arrays, como Copy, Clear, IndexOf, Reverse, entre otros.

3. Utilizando métodos de la clase Enumerable: en C#, la clase Enumerable proporciona una serie de métodos útiles para trabajar con colecciones.

Para crear un array utilizando métodos de la clase Enumerable, se puede utilizar el método ToArray() después de aplicar una operación de consulta a una colección. Por ejemplo, supongamos que tenemos una lista de números enteros y queremos crear un array que contenga solo los números pares de la lista:


using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] numeros = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        int[] pares = numeros.Where(n => n % 2 == 0).ToArray();

        Console.WriteLine("Números pares:");
        foreach (int num in pares)
        {
            Console.WriteLine(num);
        }
    }
}

Lenguaje del código: C# (cs)

En este ejemplo, utilizamos el método Where() de la clase Enumerable para obtener una colección que contiene solo los números pares de la lista numeros. Luego, utilizamos el método ToArray() para crear un array que contiene los elementos de la colección.

Finalmente, imprimimos los números pares utilizando un bucle foreach. El resultado de este programa sería:


Números pares:
2
4
6
8
10

Lenguaje del código: C# (cs)

Formas de recorrer un Array

Existen varias formas de recorrer un array en C#. Aquí te presento algunas de ellas:

  1. Recorrido con bucle for:

Puedes recorrer un array con un bucle for, utilizando el índice de cada elemento para acceder a ellos. Por ejemplo:


int[] numeros = { 1, 2, 3, 4, 5 };

for (int i = 0; i < numeros.Length; i++)
{
    Console.WriteLine(numeros[i]);
}

Lenguaje del código: C# (cs)
  1. Recorrido con foreach:

El bucle foreach es otra forma común de recorrer un array. En este caso, no necesitas utilizar un índice para acceder a cada elemento, sino que puedes hacerlo directamente con una variable. Por ejemplo:


int[] numeros = { 1, 2, 3, 4, 5 };

foreach (int numero in numeros)
{
    Console.WriteLine(numero);
}

Lenguaje del código: C# (cs)
  1. Recorrido con iteradores de la clase Array:

La clase Array de .NET Framework proporciona varios métodos para recorrer los elementos de un array. Por ejemplo, el método GetEnumerator() devuelve un iterador que permite recorrer el array con un bucle while. Por ejemplo:


int[] numeros = { 1, 2, 3, 4, 5 };
IEnumerator enumerador = numeros.GetEnumerator();

while (enumerador.MoveNext())
{
    Console.WriteLine(enumerador.Current);
}

Lenguaje del código: C# (cs)
  1. Recorrido con LINQ:

También puedes utilizar LINQ (Language Integrated Query) para recorrer y manipular los elementos de un array.

Por ejemplo, puedes utilizar el método Select() para aplicar una función a cada elemento del array y obtener un nuevo array con los resultados. Por ejemplo:


int[] numeros = { 1, 2, 3, 4, 5 };
int[] cuadrados = numeros.Select(n => n * n).ToArray();

foreach (int numero in cuadrados)
{
    Console.WriteLine(numero);
}

Lenguaje del código: C# (cs)

Ordenar Array en C#

En C#, puedes ordenar un array utilizando varios métodos, como el método Array.Sort, que ordena los elementos de un array en orden ascendente, o el método Array.Reverse, que invierte el orden de los elementos de un array.

Aquí tienes un ejemplo de cómo utilizar el método Array.Sort para ordenar un array de enteros:


int[] numbers = { 4, 1, 6, 3, 8, 2, 9, 5, 7 };
Array.Sort(numbers);
foreach (int num in numbers)
{
    Console.Write(num + " ");
}
// Output: 1 2 3 4 5 6 7 8 9

Lenguaje del código: C# (cs)

En este ejemplo, creamos un array de enteros y lo inicializamos con algunos valores desordenados. Luego, utilizamos el método Array.Sort para ordenar los elementos del array en orden ascendente.

Por último, recorremos el array ordenado utilizando un bucle foreach y mostramos los elementos en la consola.

También puedes utilizar el método Array.Reverse para invertir el orden de los elementos de un array. Aquí tienes un ejemplo:


int[] numbers = { 4, 1, 6, 3, 8, 2, 9, 5, 7 };
Array.Sort(numbers);
Array.Reverse(numbers);
foreach (int num in numbers)
{
    Console.Write(num + " ");
}
// Output: 9 8 7 6 5 4 3 2 1

Lenguaje del código: C# (cs)

En este ejemplo, utilizamos el método Array.Sort para ordenar los elementos del array en orden ascendente y luego utilizamos el método Array.Reverse para invertir el orden de los elementos.

Por último, recorremos el array invertido utilizando un bucle foreach y mostramos los elementos en la consola.