English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# geschweifte Array

Geschweifte Arrays sind Arrays von Arrays. Geschweifte Arrays speichern Arrays anstatt Literalwerte. Zum Beispiel ein zweidimensionales Array ist ein eindimensionales Array aus mehreren gleichen Elementen, aber geschweifte Arrays, wobei die Anzahl der Elemente in jeder untergeordneten Array unterschiedlich ist.

Geschweifte Arrays werden mit zwei geschweiften Klammern [] [] initialisiert. Der erste Klammer bestimmt die Größe des Arrays, der zweite Klammer bestimmt die Größe des Arrays, das gespeichert werden soll.

Nachstehendes Beispiel zeigt die Deklaration von geschweiften Arrays.

int[][] jArray1 = new int[2]; // kann maximal zwei eindimensionale Arrays enthalten 
int[][,] jArray2 = new int[3][,]; // kann maximal drei zweidimensionale Arrays enthalten

Im obigen Beispiel enthält jArray1Es können maximal zwei eindimensionale Arrays gespeichert werden. jArray2Es können maximal drei zweidimensionale Arrays gespeichert werden, das Array [,] bestimmt das zweidimensionale Array.

int[][] jArray = new int[2]; 
jArray[0] = new int[3]{1, 2, 3};
jArray[1] = new int[4]{4, 5, 6, 7 };

Man kann auch geschweifte Arrays bei der Deklaration initialisieren, wie folgt.

int[][] jArray = new int[2]{
                new int[3]{1, 2, 3},
                new int[4]{4, 5, 6, 7}
            };
jArray[0][0]; //Rückgabe1
jArray[0][1]; //Rückgabe2
jArray[0][2]; //Rückgabe3
jArray[1][0]; //Rückgabe4
jArray[1][1]; //Rückgabe5
jArray[1][2]; //Rückgabe6
jArray[1][3]; //Rückgabe7

Man kann zwei for-Schleifen verwenden, um ein geschweiftes Array zu durchlaufen, wie folgt.

int[][] jArray = new int[2]{
                new int[3]{1, 2, 3},
                new int[4]{4, 5, 6, 7}
            };
for(int i=0; i<jArray.Length; i++)
{
	for(int j=0; j < (jArray[i]).Length; j++)
		Console.WriteLine(jArray[i][j]);
}

Das folgende geschweifte Array speichert zweidimensionale Arrays, wobei der zweite Klammer [ ] ein zweidimensionales Array darstellt.

int[][,] jArray = new int[2][,];
jArray[0] = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } }
jArray[1] = new int[2, 2] { { 7, 8 }, { 9, 10 } } 
jArray[0][1, 1]; //Rückgabe4
                                             
jArray[1][1, 0]; //Rückgabe9
                                             
jArray[1][1, 1]; //Rückgabe10

Fügen Sie einen weiteren Klammern hinzu, dann ist es ein Array von Arrays.

int[][][] intJaggedArray = new int[2]] 
                            {
                                new int[2}][]  
                                { 
                                    new int[3] { 1, 2, 3},
                                    new int[2] { 4, 5} 
                                },
                                new int[1}][]
                                { 
                                    new int[3] { 7, 8, 9}
                                }
                            };
Console.WriteLine(intJaggedArray[0][0][0]); // 1
Console.WriteLine(intJaggedArray[0][1][1]); // 5
    
Console.WriteLine(intJaggedArray[1][0][2]); // 9

In dem obigen Beispiel des gemischten Arrays, drei eckige Klammern [][][] stellen die Arrays der Arrays dar. Daher enthält intJaggedArray zwei Elemente, was zwei Arrays bedeutet. Jeder Array enthält noch ein Array (eindimensional). intJaggedArray[0][0][0] zeigt auf den ersten Element der ersten internen Array. intJaggedArray[1][0][2]] Zeige auf den dritten Element der zweiten internen Array. Das Diagramm zeigt dies.

Zahnräder-Array