Z dokumentacji MSDN sprawie sposobu Array.Copy
:Array.Copy zawsze row-major?
Podczas kopiowania między wielowymiarowych tablic, matryca zachowuje się jak długi tablicy jednowymiarowej, gdzie rzędy (lub kolumny) są koncepcyjnie określoną końcami. Na przykład, jeśli tablica ma trzy wiersze (lub kolumny) z czterema elementami, kopiowanie sześciu elementów z początku tablicy spowoduje skopiowanie wszystkich czterech elementów pierwszego wiersza (lub kolumny) i pierwszych dwóch elementów drugiego wiersza (lub kolumna).
Zawsze zakłada się, że w C#, macierze dwuwymiarowe są określone w row-major order (i podobnie dla wyższych wymiarów), więc jestem mylić o znaczeniu nawiasach „lub kolumnach” w powyższym dokumentacja. Czy to oznacza, że mogą występować okoliczności, w których system .NET Framework używa kolejności kolumn-wielkich?
To dość mylące. Być może próbują tylko objąć przypadek, w którym (#rows == 1). Jestem prawie pewny, że zawsze jest kopiowany w kolejności rzędowej. W przeciwnym razie powstaje chaos! –
Tak też początkowo myślałem, ale nie obejmuje to "trzech wierszy (lub kolumn) z czterema elementami". Moje obecne przypuszczenie jest takie, że zostało sformułowane w ten sposób dla osób, które zmieniają definicje wierszy i kolumn. – Douglas
Myślę, że to stara się być agnostyka wiersz/kolumna-major; nie obchodzi, czy wyobrażasz sobie swój pierwszy indeks jako wiersz lub kolumnę. – Rawling