Temas tratados en esta entrada
Para recorrer los elementos de una Matriz en C# podemos utilizar los bucles for o foreach
Podemos usar también la propiedad Length para sabernos cuantas veces el bucle tiene que ser ejecutado para recorrer toda la Matriz
Nel siguiente ejemplo recorremos una matriz con autos utilizando el bucle for
Ejemplo
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (int i = 0; i < cars.Length; i++)
{
Console.WriteLine(cars[i]);
}
...
El bucle foreach
El bucle foreach se usa exclusivamente para recorrer los elementos de una matriz
Sintaxis
foreach (type variableName in arrayName) { // code block to be executed }
Vamos usar el bucle foreach para recorrer la matriz de autos
Ejemplo
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; foreach (string i in cars) { Console.WriteLine(i); }
Los dos bucles se pueden usar para recorrer los elementos de una matriz, pero como hemos visto en los ejemplos anteriores el bucle foreach es más fácil escribir y entendible
Ordenar una matriz
El método sort() ordena una matriz alfabéticamente o en orden descendiente
Ejemplo
// Ordenar una string string[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; Array.Sort(cars); foreach (string i in cars) { Console.WriteLine(i); }
Utilizando el mismo método podemos ordenar números enteros como vemos nel ejemplo
Ejemplo
// Ordenar un int int[] myNumbers = {5, 1, 8, 9}; Array.Sort(myNumbers); foreach (int i in myNumbers) { Console.WriteLine(i); }
Otros Metodos
En C# tenemos otros métodos útiles para utilizar en matrices, como por ejemplo
- Max método que encuentra el numero máximo de una Matriz
- Min Encuentra el numero mínimo de una matriz
- Sum encuentra la suma de todos los números de la matriz
Ejemplo
using System; using System.Linq; namespace MyApplication { class Program { static void Main(string[] args) { int[] myNumbers = {5, 1, 8, 9}; Console.WriteLine(myNumbers.Max()); // devuelve el mayor valor Console.WriteLine(myNumbers.Min()); // devuelve el valor más pequeño Console.WriteLine(myNumbers.Sum()); // devuelve la suma de los elementos } } }
Matrices multidimensionales
Una matriz multidimensional es una matriz de matrices
Esto quiere decir que dentro de una matriz pueden existir otras matrices.
Matrices bidimensionales
Son dos matrices dentro de una sola matriz
Ejemplo
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Solo por curiosidad nos damos cuenta que las matrices multidimensionales que contengan solo una coma [,] se refieren a matrices bidimensionales, si tenemos dos comas [, ,] nos estamos refiriendo a matrices tridimensionales
El arreglo anterior inserido en una tabla se vería da siguiente forma:
Acceso a elementos de matrices 2D
Para acceder a elementos de matrices bidimensionales, debemos especificar dos índices, el primero índice nos hace referencia a la matriz, y el segundo índice nos hace referencia al elemento de esa matriz
Ejemplo
int[,] numbers = { {1, 4, 2}, {3, 6, 8} }; Console.WriteLine(numbers[0, 2]); // Salida 2
En el ejemplo vemos que el índice [0] va hacer referencia a la primera matriz
A continuación vemos un índice [2] que hará referencia al elemento de la primera matriz
Concluimos que su salida será 2
Cambiar elementos de una matriz 2D
Para cambiar los elementos de una matriz usaremos dos índices, que como en el ejemplo anterior, el primero va hacer referencia a la matriz y el segundo índice al elemento de la matriz correspondiente
Ejemplo
int[,] numbers = { {1, 4, 2}, {3, 6, 8} }; numbers[0, 0] = 5; // Change value to 5 Console.WriteLine(numbers[0, 0]); // Salida 5
Explicación
Vemos numbers[0, 0] = 5 lo que nos reemplaza en la primera matriz (0) el primero número (0) por un (5)
Si ahora pedimos que nos imprima el primero numero de la primera matriz Console.WriteLine(numbers[0, 0]); obtenemos en la salida un 5 ya que el otro fue reemplazado por este
Bucle a través de una matriz 2D
Para recorrer una matriz 2D podemos usar el bucle foreach
Ejemplo
int[,] numbers = { {1, 4, 2}, {3, 6, 8} }; foreach (int i in numbers) { Console.WriteLine(i); }
Salida 1 4 2 3 6 8
También puede utilizar un bucle for . Para arreglos multidimensionales, necesita un bucle para cada una de las dimensiones de la matriz.
También tenga en cuenta que tenemos que usar GetLength() en vez de Length para especificar cuántas veces se debe ejecutar el bucle:
Ejemplo
int[,] numbers = { {1, 4, 2}, {3, 6, 8} }; for (int i = 0; i < numbers.GetLength(0); i++) { for (int j = 0; j < numbers.GetLength(1); j++) { Console.WriteLine(numbers[i, j]); } }
Salida 1 4 2 3 6 8
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias