Matrices (Guía de programación de C#)
Puede almacenar varias variables del mismo tipo en una estructura de datos de matriz. Puede declarar una matriz mediante la especificación del tipo de sus elementos. Si quiere que la matriz almacene elementos de cualquier tipo, puede especificar object
como su tipo. En el sistema de tipos unificado de C#, todos los tipos, los predefinidos y los definidos por el usuario, los tipos de referencia y los tipos de valores, heredan directa o indirectamente de Object.
type[] arrayName;
Ejemplo
Los ejemplos siguientes crean matrices unidimensionales, multidimensionales y escalonadas:
class TestArraysClass
{
static void Main()
{
// Declare a single-dimensional array of 5 integers.
int[] array1 = new int[5];
// Declare and set array element values.
int[] array2 = new int[] { 1, 3, 5, 7, 9 };
// Alternative syntax.
int[] array3 = { 1, 2, 3, 4, 5, 6 };
// Declare a two dimensional array.
int[,] multiDimensionalArray1 = new int[2, 3];
// Declare and set array element values.
int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
// Declare a jagged array.
int[][] jaggedArray = new int[6][];
// Set the values of the first array in the jagged array structure.
jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
}
}
Información general sobre la matriz
Una matriz tiene las propiedades siguientes:
- Puede ser una matriz unidimensional, multidimensional o escalonada.
- El número de dimensiones y la longitud de cada dimensión se establecen al crear la instancia de matriz. No se pueden cambiar estos valores durante la vigencia de la instancia.
- Los valores predeterminados de los elementos numéricos de matriz se establecen en cero y los elementos de referencia se establecen en
null
. - Una matriz escalonada es una matriz de matrices y, por consiguiente, sus elementos son tipos de referencia y se inicializan en
null
. - Las matrices se indexan con cero: una matriz con
n
elementos se indexa de0
an-1
. - Los elementos de una matriz puede ser cualquier tipo, incluido un tipo de matriz.
- Los tipos de matriz son tipos de referencia que proceden del tipo base abstracto Array. Todas las matrices implementan IList y IEnumerable. Puede usar la instrucción foreach para recorrer en iteración una matriz. Las matrices de dimensión única también implementan IList<T> y IEnumerable<T>.
Comportamiento del valor predeterminado
- Para los tipos de valor, los elementos de la matriz se inicializan con el valor predeterminado, el patrón de 0 bits; los elementos tendrán el valor
0
. - Todos los tipos de referencia (incluidos los que no aceptan valores NULL) tienen los valores
null
. - Para los tipos de valor que aceptan valores NULL,
HasValue
se establece enfalse
, y los elementos se establecerán ennull
.
Matrices como objetos
En C#, las matrices son actualmente objetos, y no simplemente regiones direccionables de memoria contigua como en C y C++. Array es el tipo base abstracto de todos los tipos de matriz. Puede usar las propiedades, y otros miembros de clase, que tiene Array. Un ejemplo de esto sería usar la propiedad Length para obtener la longitud de una matriz. El código siguiente asigna la longitud de la matriz numbers
, que es 5
, a una variable denominada lengthOfNumbers
:
int[] numbers = { 1, 2, 3, 4, 5 };
int lengthOfNumbers = numbers.Length;
La clase Array proporciona muchos otros métodos útiles y propiedades para ordenar, buscar y copiar matrices. En los ejemplos siguientes se usa la propiedad Rank para mostrar el número de dimensiones de una matriz.
class TestArraysClass
{
static void Main()
{
// Declare and initialize an array.
int[,] theArray = new int[5, 10];
System.Console.WriteLine("The array has {0} dimensions.", theArray.Rank);
}
}
// Output: The array has 2 dimensions.
Vea también
- Uso de matrices unidimensionales
- Uso de matrices multidimensionales
- Uso de matrices escalonadas
- Utilizar foreach con matrices
- Pasar matrices como argumentos
- Matrices con tipo implícito
- Guía de programación de C#
- Colecciones
Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.