2016-03-30 3 views
2

Warum wird eine [,] Stil Array Length Methode vs ein [][] gezackten Stil Array Length Verfahren, dass die Länge Methode in der gezackten Array unterscheiden gibt die Größe des nächsten Ranges, wo, wie in dem [,] Stil Array die Length Methode gibt die gesamte Anzahl von Elementen nicht nur von dem am nächsten Rang (folglich die Notwendigkeit, die GetLength() Methode zu verwenden.)Multi Dimensional Array vs Jagged Array Länge Methode

+0

@PatrickKostjens Ich habe gelesen, aber ich verstehe nicht den Unterschied in der Längenmethode speziell. Ich meine, warum würde die Längenmethode in gezackten Arrays unterscheiden sich in dem Ergebnis, dass die Längenmethode in den "normalen" Arrays. Gibt es einen Grund? – Johnson

+0

Weil 'Länge' die Anzahl der Elemente im Array zurückgibt. In einem mehrdimensionalen Array ist dies natürlich die Gesamtzahl der Elemente, da Sie ein Array mit n Elementen haben. Ein gezacktes Array ist eigentlich ein Array von Arrays, also gibt 'Length 'die Anzahl der Arrays zurück –

+0

Weil ein' something [x] 'x Elemente enthält. Es sollte keinen Unterschied machen, ob 'etwas'' int', 'string' oder' somethingElse [] 'ist. Ein 'etwas [x, y]' andererseits ist ein Objekt, das x * y Elemente enthält. –

Antwort

1

Jagged-Arrays ([][]) -Arrays, wo der Elementtyp ein Array ist zu [], so ist im Grunde nur ein eindimensionales Array.

Mehrdimensionale Arrays ([,]) sind Arrays mit mehr als einer Dimension, aber alle Elemente befinden sich im selben Array.

Length Eigenschaft aus MSDN:

Ruft die Anzahl der Elemente in allen Dimensionen des Arrays.

Entsprechend dieser Length im gezackten Array gibt diese Eigenschaft die Anzahl der Arrays zurück, die es enthält.

In mehrdimensionalen Arrays gibt diese Eigenschaft alle Elemente zurück, dh die Multiplikation aller Dimensionsgrößen.

GetLength(int) aus MSDN:

Ruft eine ganze Zahl, die die Anzahl der Elemente in der angegebenen Dimension des Arrays darstellt.

diese Methode für verzweigte Arrays verwenden, die einzige verfügbare Dimension ist 0, dass der gleiche Wert wie Length Eigenschaft zurückgibt.

In mehrdimensionalen Arrays können Sie den nullbasierten Index der gewünschten Dimension übergeben. Zum Beispiel sind in [,,] verfügbare Abmessungen 0, 1 und 2.