Las matrices son colecciones ordenadas de elementos del mismo tipo de datos a los que se tiene acceso utilizando el nombre de la matriz junto con el desplazamiento del elemento deseado desde el inicio de la matriz. Hay algunas diferencias importantes entre C# y Java en lo referente a cómo se declaran y utilizan las matrices.

Matriz unidimensional

Una matriz unidimensional almacena un número fijo de elementos en modo lineal, lo que requiere sólo un valor de índice único para identificar cualquier elemento. En C#, los corchetes de la declaración de matriz deben seguir al tipo de datos y no se pueden colocar después del nombre de variable, como se permite en Java. Así, una matriz de tipo integers se declara mediante la siguiente sintaxis:

c#

int[] arr1;
int arrg1; //error en c#
java

int[] arrg1; //correcto
int arrg1[]; //correcto

Una vez que se declara una matriz, se utiliza la palabra clave new para establecer su tamaño, como en Java. En el ejemplo siguiente se declara la referencia de la matriz:

c# y java

int[] arr;
arr = new int[5];  // crea un espacio para 5 elementos de tipo entero

A continuación, se tiene acceso a los elementos de una matriz unidimensional mediante una sintaxis idéntica a la de Java. Los índices de matriz de C# también se basan en cero. La sintaxis siguiente obtiene acceso al último elemento de la matriz anterior:

c#

System.Console.WriteLine(arr[4]);  // acceso al 5to elemento

java

System.out.println(arr[4]); // acceso al 5to elemento

Inicialización

Los elementos de la matriz de C# se pueden inicializar en el momento de su creación mediante la misma sintaxis que Java:

c# y java

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

o tambien de esta manera

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

Matrices escalonadas

Tanto C# como Java admiten la creación de matrices escalonadas o no rectangulares, en las que cada fila contiene un número diferente de columnas. Por ejemplo, la siguiente matriz escalonada tiene cuatro entradas en la primera fila y tres en la segunda:

c# y java

int[][] jaggedArray = new int[2][];
jaggedArray[0] = new int[4];
jaggedArray[1] = new int[3];

Matrices multidimensionales

Con C#, se pueden crear matrices multidimensionales normales que son como una matriz de valores del mismo tipo. Mientras Java y C# admiten matrices escalonadas, C# también admite matrices multidimensionales o matrices de matrices.

Declare una matriz rectangular multidimensional mediante la siguiente sintaxis:

c#

int[,] arr2D = new int[2,3]; //espacio reservado de 2 filas y 3 columnas

java

int[][] arr2d = new int[2][3]

inicialización

Se pueden crear, configurar e inicializar matrices multidimensionales en una instrucción única a través de uno de los métodos siguientes:

C# y java
int[,] arr4 = new int [2,3] { {1,2,3}, {4,5,6} };