Arrays o Matrices en C#
Los Arrays o Matrices en C# son una estructura que almacena una o más variables del mismo tipo de dato que el array al momento de crearlo.
Podemos encontrar 3 tipos de array, los cuales son:
- Unidimensional
- Multidimensional
- Jagged arrays (Escalonado)
Unidimensional
Este tipo de matriz es la más básica, se compone de una única fila de espacios para guardar las variables.
- Cada espacio del array se identifica mediante un número que comienza en la posición 0.
- En la creación del array del tamaño o el número de espacios.
Podría interesarte Colección List de una clase en C#
Declaración del array
La declaración de un array puede definirse de diversas maneras, veamos algunas maneras de hacerlo.
Básico, sin especificar número de espacios.
int[] array1;
Declarando número de espacios, se inicializa el array con el número de espacios mediante new.
int[] array2 = new int[5];
Numero de espacios y valores, establecemos el número de espacios y el valor de cada uno en la misma declaración.
int[] array3 = new int[3] { 3, 5, 10};
Sin especificar número de espacios, el número de espacios del array de define mediante el número de valores en la declaración.
int[] array4 = { 4, 9, 5, 1 };
En los ejemplos solo estamos creando arrays enteros, sin embargo, es posible crear de cualquier otro tipo como son:
- string
- double
- byte
- char
- entre otros.
Agregar información al array
Podemos agregar información a un array de varias formas, esto dependiendo de la forma declarada.
De las anteriores declaraciones vistas las dos primeras no cuentan con valores, mientras que las dos últimas ya los tiene.
Agregare valores a las dos primeras declaraciones de la siguiente manera.
array1 = new int[3]{ 5, 10, 7 };
array2 = new []{ 4, 7, 8, 2, 20};
Es posible utilizar bucles para llenar un array, por ejemplo, utilicemos un ciclo for.
for (int i = 0; i < array2.Length; i++)
{
array2[i] = i;
}
Podría interesarte Consulta LINQ en un DataTable con C#
Obtener información del array
Al igual que cualquier otro variable necesitamos obtener la información almacenada, en un array es importante la posición de los datos.
Obtengamos el valor almacenado en la posición 1 del array1.
int valor1 = array1[1];
//R: 10
- Entre corchetes se especifica la posición del dato que requerimos.
- Recuerden que las posiciones comienzan en 0.
Podemos utilizar ciclos para obtener la información, en esos ciclos también puedes utilizar filtros en caso de necesitarlos.
for (int i = 0; i < array2.Length; i++)
{
array2[i];
}
//R: 4, 7, 8, 2, 20
Multidimensional
Los arrays multidimensionales se dividen en dos, 2D (Tabla) y 3D (Cubo).
2D o Tabla
Prácticamente podemos decir que son tablas que almacenan información al igual que un array normal.
Es este tipo también es muy importante tener claro las posiciones de los espacios.
Representemos la imagen anterior en código, ya que tenemos visualmente la tabla.
int[,] array1 = new int[2, 3] { { 10, 5, 100 },
{ 50, 75, 25 } };
- Entre los corchetes se coloca una coma, eso define que es un array 2D.
- Creamos un arrary especificando primero el número de filas (2), seguido del número de columnas (3).
- Entre llaves colocamos los datos de la primera fila, separamos con coma para continuar con la segunda fila.
- Este tipo de array también comienza en posición 0,0 (primero fila y seguido de la columna).
Obtener información de la tabla
Para obtener la información guardada en la tabla podemos realizarlo de dos formas, la primera especificando la posición.
int valor1 = array1[1, 2];
//R: 25
La otra forma de hacerlo sería con un ciclo, utilicemos un foreach para obtener los datos.
foreach (int item in array1)
{
item;
}
//R: 10, 5, 100, 50, 75, 25
Podría interesarte Modificar datos de un DataTable en C#
3D o Cubo
Un array 3D es prácticamente la creación de un cubo, este se compone de dos tablas o más en un solo array.
Es importante conocer bien las posiciones de cada elemento para su administración, en la siguiente imagen lo vemos claramente.
Representemos la imagen anterior en código, para comprender mejor como construirlo ya que lo tenemos gráficamente.
int[,,] array2 = new int[2, 2, 3] {
{//primera capa
{ 55, 25, 30 },//Primera fila
{ 100, 55, 10 }// Segunda fila
},
{//Segunda capa
{ 125, 60, 75 },//Primera fila
{ 99, 15, 150 }// Segunda fila
} };
- En la declaración del tipo de dato se colocan dos comas entre los corchetes.
- El orden del cubo es, primero el número de capas (2), seguido del número de filas (2) y por ultimo las columnas (3).
- Primero se separa entre corchetes las capas.
- Dentro de cada capa se separa entre corchetes las filas.
Obtener información del cubo
Podemos obtener los valores de cada campo especificando la posición requerida.
int valor = array2[1, 1, 0];
//R: 99
Además, podemos hacer uso de los bucles para obtener los datos, utilicemos un foreach.
foreach (int item in array2)
{
item;
}
//R: 55, 25, 30, 100, 55, 10, 125, 60, 75, 99, 15, 150
Podría interesarte JaggedArray o Matriz escalonada en C#
Puedes visualizar los resultados utilizando un proyecto de consola o cualquier otro proyecto que te permita mostrar en pantalla.
Falto agregar como generar una matriz a raiz de 2 bucles For
Es correcto, falto el ejemplo de llenado de una matriz mediante dos ciclos.