Csharp/CSharp Tutorial/Data Structure/Jagged Arrays
Содержание
Demonstrate jagged arrays
<source lang="csharp">using System;
class MainClass {
public static void Main() { int[][] jagged = new int[3][]; jagged[0] = new int[4]; jagged[1] = new int[3]; jagged[2] = new int[5]; int i; Console.WriteLine("store values in first array"); for(i=0; i < 4; i++) jagged[0][i] = i; Console.WriteLine("store values in second array"); for(i=0; i < 3; i++) jagged[1][i] = i; Console.WriteLine("store values in third array"); for(i=0; i < 5; i++) jagged[2][i] = i; Console.WriteLine("display values in first array"); for(i=0; i < 4; i++) Console.Write(jagged[0][i] + " "); Console.WriteLine(); Console.WriteLine("display values in second array"); for(i=0; i < 3; i++) Console.Write(jagged[1][i] + " "); Console.WriteLine(); Console.WriteLine("display values in third array"); for(i=0; i < 5; i++) Console.Write(jagged[2][i] + " "); Console.WriteLine(); }
}</source>
store values in first array store values in second array store values in third array display values in first array 0 1 2 3 display values in second array 0 1 2 display values in third array 0 1 2 3 4
Demonstrate Length with jagged arrays.
<source lang="csharp">using System;
class MainClass {
public static void Main() { int[][] jaggedArray = new int[4][]; jaggedArray[0] = new int[3]; jaggedArray[1] = new int[7]; jaggedArray[2] = new int[2]; jaggedArray[3] = new int[5]; int i, j; for(i=0; i < jaggedArray.Length; i++){ for(j=0; j < jaggedArray[i].Length; j++){ jaggedArray[i][j] = i * j + 70; } } Console.WriteLine("Total number of network nodes: " + jaggedArray.Length + "\n"); for(i=0; i < jaggedArray.Length; i++) { for(j=0; j < jaggedArray[i].Length; j++) { Console.Write(i + " " + j + ": "); Console.Write(jaggedArray[i][j] + "% "); Console.WriteLine(); } Console.WriteLine(); } }
}</source>
Total number of network nodes: 4 0 0: 70% 0 1: 70% 0 2: 70% 1 0: 70% 1 1: 71% 1 2: 72% 1 3: 73% 1 4: 74% 1 5: 75% 1 6: 76% 2 0: 70% 2 1: 72% 3 0: 70% 3 1: 73% 3 2: 76% 3 3: 79% 3 4: 82%
Jagged With SubArrays
A jagged array is an array of arrays in which the length of each array can differ.
<source lang="csharp">using System;
class MainClass
{
static void Main() { int[][,] Arr; Arr = new int[2][,]; Arr[0] = new int[,] { { 1, 2 }, { 10, 20 } }; Arr[1] = new int[,] { { 3, 4, 5 }, { 30, 40, 50 } }; for (int i = 0; i < Arr.GetLength(0); i++) { for (int j = 0; j < Arr[i].GetLength(0); j++) { for (int k = 0; k < Arr[i].GetLength(1); k++) { Console.WriteLine ("[{0}][{1},{2}] = {3}", i, j, k, Arr[i][j, k]); } } } }
}</source>
[0][0,0] = 1 [0][0,1] = 2 [0][1,0] = 10 [0][1,1] = 20 [1][0,0] = 3 [1][0,1] = 4 [1][0,2] = 5 [1][1,0] = 30 [1][1,1] = 40 [1][1,2] = 50
Multidimensional jagged arrays
<source lang="csharp">using System; class MainClass {
public static void Main() { int[][] matrix = {new int[5], new int[4], new int[2] }; matrix[0][3] = 4; matrix[1][1] = 8; matrix[2][0] = 5; for (int i = 0; i < matrix.Length; i++) { for (int j = 0; j < matrix[i].Length; j++) { Console.WriteLine("matrix[{0}, {1}] = {2}", i, j, matrix[i][j]); } } }
}</source>
matrix[0, 0] = 0 matrix[0, 1] = 0 matrix[0, 2] = 0 matrix[0, 3] = 4 matrix[0, 4] = 0 matrix[1, 0] = 0 matrix[1, 1] = 8 matrix[1, 2] = 0 matrix[1, 3] = 0 matrix[2, 0] = 5 matrix[2, 1] = 0
Use foreach statement to loop through jagged array
<source lang="csharp">using System; class MainClass {
static void Main() { int[][] arr1 = new int[2][]; arr1[0] = new int[] { 1, 3 }; arr1[1] = new int[] { 1, 1, 4 }; foreach (int[] array in arr1) { Console.WriteLine("Starting new array"); foreach (int item in array) { Console.WriteLine(" Item: {0}", item); } } }
}</source>
Starting new array Item: 1 Item: 3 Starting new array Item: 1 Item: 1 Item: 4