Академический Документы
Профессиональный Документы
Культура Документы
Matrices en general
Declarar matrices
Inicializar matrices
Acceso a miembros de matrices
Las matrices son objetos
Usar foreach con matrices
Matrices en general
En las matrices de C#, los ndices empiezan en cero. Las matrices de C# funcionan de
forma similar a como lo hacen en la mayora de los lenguajes populares; existen, sin
embargo, algunas diferencias que se deben conocer.
Cuando se declara una matriz, los corchetes ([]) deben ir despus del tipo, no despus del
identificador. Colocar los corchetes despus del identificador no es sintcticamente vlido
en C#.
int[] table; // not int table[];
Otro detalle es que el tamao de la matriz no forma parte de su tipo, como ocurre en el
lenguaje C. Esto permite declarar una matriz y asignarle cualquier matriz de objetos int,
independientemente de la longitud de la matriz.
int[] numbers; // declare numbers as an int array of any size
numbers = new int[10]; // numbers is a 10-element array
numbers = new int[20]; // now it's a 20-element array
Declarar matrices
C# admite matrices de una dimensin, matrices multidimensionales (matrices
rectangulares) y matrices de matrices (matrices escalonadas). El siguiente ejemplo muestra
cmo declarar diferentes tipos de matrices:
Matrices unidimensionales:
int[] numbers;
Matrices multidimensionales:
string[,] names;
byte[][] scores;
La declaracin de matrices (como se muestra arriba) no crea realmente las matrices. En C#,
las matrices son objetos (se explica ms adelante en este tutorial) cuyas instancias deben
crearse. Los siguientes ejemplos muestran cmo crear matrices:
Matrices unidimensionales:
int[] numbers = new int[5];
Matrices multidimensionales:
string[,] names = new string[5,4];
Tambin se pueden utilizar matrices ms grandes. Por ejemplo, se puede utilizar una matriz
rectangular de tres dimensiones:
int[,,] buttons = new int[4,5,3];
Ejemplo
El siguiente es un programa completo en C# que declara y crea instancias de las matrices
comentadas anteriormente.
// arrays.cs
using System;
class DeclareArraysSample
{
public static void Main()
{
// Single-dimensional array
int[] numbers = new int[5];
// Multidimensional array
string[,] names = new string[5,4];
// Array-of-arrays (jagged array)
Resultado
Length
Length
Length
Length
Length
of
of
of
of
of
row
row
row
row
row
0
1
2
3
4
is
is
is
is
is
3
4
5
6
7
Inicializar matrices
C# proporciona mtodos simples y sencillos para inicializar matrices en el momento de la
declaracin encerrando los valores iniciales entre llaves ({}). Los siguientes ejemplos
muestran diferentes modos de inicializar diferentes tipos de matrices.
Nota Si no inicializa una matriz en el momento de la declaracin, sus miembros se
inicializan automticamente con el valor inicial predeterminado para el tipo de matriz.
Adems, si declara la matriz como campo de un tipo, se establecer con el valor
predeterminado null cuando cree la instancia del tipo.
Matrices unidimensionales
int[] numbers = new int[5] {1, 2, 3, 4, 5};
string[] names = new string[3] {"Matt", "Joanne", "Robert"};
Matrices multidimensionales
int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[2, 2] { {"Mike","Amy"}, {"Mary","Albert"}
};
O bien
int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
Observe que no existe sintaxis de inicializacin para los elementos de una matriz
escalonada.
La siguiente es una declaracin de una matriz escalonada de una sola dimensin que
contiene dos elementos. El primer elemento es una matriz de dos enteros, mientras que el
segundo es una matriz de tres enteros:
int[][] numbers = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5}
};
Con matrices multidimensionales, se puede utilizar el mismo mtodo para recorrer los
elementos, por ejemplo:
int[,] numbers = new int[3, 2] {{9, 99}, {3, 33}, {5, 55}};
foreach(int i in numbers)
{
Console.Write("{0} ", i);
}
9 99 3 33 5 55
Sin embargo, con matrices multidimensionales, utilizar un bucle for anidado proporciona
ms control sobre los elementos de la matriz.