Csharp/CSharp Tutorial/Data Structure/Multi Dimensional Array
Содержание
- 1 A two-dimensional array
- 2 Declare, create, and initialize the rectangular array
- 3 Declaring a Jagged Array
- 4 Declaring a Two-Dimensional Array
- 5 Initialize a two-dimensional array
- 6 Initialize multidimensional arrays in declaration
- 7 Initializing a Jagged Array
- 8 Initializing a Two-Dimensional Array of Integers
- 9 Retrieving a Particular Dimension"s Size
- 10 Sum the values on a diagonal of a atrix
- 11 The use of a three-dimensional rectangular array
- 12 Use a single for loop to assign a two-dimensional array
- 13 Use foreach on a two-dimensional array.
- 14 Use Foreach statement to loop through Rectangular Array
A two-dimensional array
<source lang="csharp">using System;
class MainClass {
public static void Main() { int t, i; int[,] table = new int[3, 4]; for(t=0; t < 3; ++t) { for(i=0; i < 4; ++i) { table[t,i] = (t*4)+i+1; Console.Write(table[t,i] + " "); } Console.WriteLine(); } }
}</source>
1 2 3 4 5 6 7 8 9 10 11 12
Declare, create, and initialize the rectangular array
The general form of a multidimensional array declaration:
<source lang="csharp">type[, ...,] name = new type[size1, size2, ..., sizeN];</source>
Declaring a Jagged Array
<source lang="csharp">class MainClass {
static void Main() { int[][] cells = { new int[]{1, 0, 2}, new int[]{0, 2, 0}, new int[]{1, 2, 1} }; cells[1][0] = 1; }
}</source>
Declaring a Two-Dimensional Array
<source lang="csharp">class MainClass {
static void Main() { int[,] cells = new int[3,3]; }
}</source>
Initialize a two-dimensional array
<source lang="csharp">using System;
class MainClass {
public static void Main() { int[,] sqrs = { { 1, 1 }, { 2, 4 }, { 3, 9 }, { 4, 16 }, { 5, 25 }, { 6, 36 }, { 7, 49 }, { 8, 64 }, { 9, 81 }, { 10, 100 } }; int i, j; for(i=0; i < 10; i++) { for(j=0; j < 2; j++) Console.Write(sqrs[i,j] + " "); Console.WriteLine(); } }
}</source>
1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100
Initialize multidimensional arrays in declaration
<source lang="csharp">using System; class MainClass {
public static void Main() { int[,] matrix = { {1, 1}, {2, 2}, {3, 5}, {4, 5}, {134, 44} }; for (int i = 0; i < matrix.GetLength(0); i++) { for (int j = 0; j < matrix.GetLength(1); j++) { Console.WriteLine("matrix[{0}, {1}] = {2}", i, j, matrix[i, j]); } } }
}</source>
matrix[0, 0] = 1 matrix[0, 1] = 1 matrix[1, 0] = 2 matrix[1, 1] = 2 matrix[2, 0] = 3 matrix[2, 1] = 5 matrix[3, 0] = 4 matrix[3, 1] = 5 matrix[4, 0] = 134 matrix[4, 1] = 44
Initializing a Jagged Array
<source lang="csharp">class MainClass {
static void Main() { int[][] cells = { new int[]{1, 0, 2, 0}, new int[]{1, 2, 0}, new int[]{1, 2}, new int[]{1} }; }
}</source>
Initializing a Two-Dimensional Array of Integers
<source lang="csharp">class MainClass {
static void Main() { int[,] cells = { {1, 0, 2}, {0, 2, 0}, {1, 2, 1} }; // Set the winning tic-tac-toe move to be player 1. cells[1,0] = 1; }
}</source>
Retrieving a Particular Dimension"s Size
<source lang="csharp">class MainClass {
static void Main() { bool[,,] cells; cells = new bool[2,3,3]; System.Console.WriteLine(cells.GetLength(0)); // Displays 2 }
}</source>
Sum the values on a diagonal of a atrix
<source lang="csharp">using System;
class MainClass {
public static void Main() { int[,,] m = new int[3, 3, 3]; int sum = 0; int n = 1; for(int x=0; x < 3; x++) for(int y=0; y < 3; y++) for(int z=0; z < 3; z++) m[x, y, z] = n++; sum = m[0,0,0] + m[1,1,1] + m[2, 2, 2]; Console.WriteLine("Sum of first diagonal: " + sum); }
}</source>
Sum of first diagonal: 42
The use of a three-dimensional rectangular array
<source lang="csharp">using System; class MainClass {
public static void Main() { int[,,] intArray = new int [10, 5, 3]; intArray[1, 3, 2] = 3; intArray[4, 1, 2] = 9; Console.WriteLine("intArray.Rank (number of dimensions) = " + intArray.Rank); Console.WriteLine("intArray.Length (number of elements) = " + intArray.Length); for (int x = 0; x < intArray.GetLength(0); x++) { for (int y = 0; y < intArray.GetLength(1); y++) { for (int z = 0; z < intArray.GetLength(2); z++) { if (intArray[x, y, z] != 0) { Console.WriteLine("intArray[" + x + ", " + y + ", " + z +"] = " + intArray[x, y, z]); } } } } }
}</source>
intArray.Rank (number of dimensions) = 3 intArray.Length (number of elements) = 150 intArray[1, 3, 2] = 3 intArray[4, 1, 2] = 9
Use a single for loop to assign a two-dimensional array
<source lang="csharp">using System; class MainClass {
static void Main(string[] args) { //multidimensional array int[,] MyIntArray = new int[5, 5]; for (int x = 0, y = 0; x < 5; x++, y++) { MyIntArray[x, y] = 0; } }
}</source>
Use foreach on a two-dimensional array.
<source lang="csharp">using System;
class MainClass {
public static void Main() { int sum = 0; int[,] nums = new int[3,5]; for(int i = 0; i < 3; i++) for(int j=0; j < 5; j++) nums[i,j] = (i+1)*(j+1); foreach(int x in nums) { Console.WriteLine("Value is: " + x); sum += x; } Console.WriteLine("Summation: " + sum); }
}</source>
Value is: 1 Value is: 2 Value is: 3 Value is: 4 Value is: 5 Value is: 2 Value is: 4 Value is: 6 Value is: 8 Value is: 10 Value is: 3 Value is: 6 Value is: 9 Value is: 12 Value is: 15 Summation: 90
Use Foreach statement to loop through Rectangular Array
<source lang="csharp">using System; class MainClass {
static void Main() { int[,] arr1 = { { 0, 1 }, { 2, 3 } }; foreach (int element in arr1) { Console.WriteLine ("Element: {0}", element); } }
}</source>
Element: 0 Element: 1 Element: 2 Element: 3