Duplicar posibles:
What is differences between Multidimensional array and Array of Arrays in C#?arrays de C# - string [] [] frente a la cadena [,]
¿Alguien puede explicar la diferencia entre string[][]
y string[,]
?
Duplicar posibles:
What is differences between Multidimensional array and Array of Arrays in C#?arrays de C# - string [] [] frente a la cadena [,]
¿Alguien puede explicar la diferencia entre string[][]
y string[,]
?
string[,]
es un multidimensional array.
string[][]
es una Jagged array:
Una matriz escalonada es una matriz cuyos elementos son matrices. Los elementos de una matriz dentada pueden tener diferentes dimensiones y tamaños. Una matriz dentada a veces se denomina "matriz de matrices"."
string[,]
-Multidimensional Arrary (matriz rectangular)
Multidimensional puede tener más de una dimensión. El siguiente ejemplo muestra cómo crear una matriz bidimensional de dos filas y dos columnas.
Declaración:
string[,] contacts;
de instancias:
string[,] contacts = new string[2,2];
inicialización:
string[,] contacts = new string[2, 2] { {"John Doe","[email protected]"}, {"Jane Doe","[email protected]"} };
string[ ][ ]
- Jagged Array (matriz de matrices)
Una matriz dentada es una matriz cuyos elementos son matrices. Los elementos de una matriz dentada pueden ser de diferentes dimensiones y tamaños. Una matriz irregular a veces se denomina "matriz de matrices".
Una matriz dentada puede almacenar eficientemente muchas filas de diferentes longitudes. Se puede usar cualquier tipo de datos, referencia o valor. La indexación de arreglos dentados es rápida. Asignarlos es algo lento.
matrices dentadas son más rápidas que las matrices multidimensionales
Declaración:
string[][] contacts;
de instancias:
string[][] contacts = new string[2][];
for (int i = 0; i < contacts.Length; i++)
{
contacts[i] = new string[3];
}
inicialización:
string[][] contacts = new string[2][] { new string[] {"[email protected]","[email protected]"}, new string[] {"[email protected]","[email protected]","[email protected]"} };
string[][]
como jagged array
Una matriz escalonada es una matriz cuyos elementos son matrices. Los elementos de una matriz escalonada pueden ser de diferentes dimensiones y tamaños. Una matriz escalonada a veces se denomina "matriz de matrices".
mientras que string[,]
es multidimensional array que
matrices pueden tener más de una dimensión
string[][]
(Jagged Arrays) son conjunto de matriz con un número fijo de filas y de longitud variable de las columnas mientras que string[,]
(Rectangular Arrays) es una matriz con un número fijo de filas y columnas. Hay una buena discusión over there
Dos aspectos de la diferencia son importantes:
Memoria-sabia:
[n, m] - guarda como un largo montón de memoria, como si se tratara [ n * m] [n] [m] - Se guarda como una matriz simple de tamaño n, donde cada elemento es un puntero a una matriz de tamaño m.
acceso a gota:
[n, m] - Para acceder a la celda i, j lo que realmente sucede es que toma el puntero del [* m n] matriz y compensa por n * Ancho + m, y luego accede al valor. [n] [m] - Para acceder a la celda i, j solo tiene que acceder al puntero del subarranque en el índice n (offset # 1), y luego acceder al subarreglo en el índice m (offset # 1).
[] [] Es mejor en ambos aspectos. Más eficiente en el acceso y más flexible en la memoria. Además, puede acceder a una única fila solo una vez y procesarla de manera más eficiente, ya que no realiza un acceso multidimensional completo para cada celda de esa fila.
Sin embargo, existe una ventaja de [,]: siempre se sabe que el ancho de la matriz es fijo. Usando [] [], cada sub-matriz puede tener diferentes longitudes e incluso puede ser nula. Esto puede considerarse como una ventaja, aunque lo opuesto también puede ser útil, a veces.
Mira cómo he editado tu respuesta, y aprenderás cómo insertar enlaces ... – aleroot