Multidimensional Arrays (C# Programming Guide)
Arrays can have more than one dimension. For example, the following declaration creates a two-dimensional array of four rows and two columns.
The following declaration creates an array of three dimensions, 4, 2, and 3.
Array Initialization
You can initialize the array upon declaration, as is shown in the following example.
// Two-dimensional array. int[,] array2D = new int[,] < < 1, 2 >, < 3, 4 >, < 5, 6 >, < 7, 8 >>; // The same array with dimensions specified. int[,] array2Da = new int[4, 2] < < 1, 2 >, < 3, 4 >, < 5, 6 >, < 7, 8 >>; // A similar array with string elements. string[,] array2Db = new string[3, 2] < < "one", "two" >, < "three", "four" >, < "five", "six" >>; // Three-dimensional array. int[,,] array3D = new int[,,] < < < 1, 2, 3 >, < 4, 5, 6 >>, < < 7, 8, 9 >, < 10, 11, 12 >> >; // The same array with dimensions specified. int[,,] array3Da = new int[2, 2, 3] < < < 1, 2, 3 >, < 4, 5, 6 >>, < < 7, 8, 9 >, < 10, 11, 12 >> >; // Accessing array elements. System.Console.WriteLine(array2D[0, 0]); System.Console.WriteLine(array2D[0, 1]); System.Console.WriteLine(array2D[1, 0]); System.Console.WriteLine(array2D[1, 1]); System.Console.WriteLine(array2D[3, 0]); System.Console.WriteLine(array2Db[1, 0]); System.Console.WriteLine(array3Da[1, 0, 1]); System.Console.WriteLine(array3D[1, 1, 2]); // Getting the total count of elements or the length of a given dimension. var allLength = array3D.Length; var total = 1; for (int i = 0; i < array3D.Rank; i++) < total *= array3D.GetLength(i); >System.Console.WriteLine(" equals ", allLength, total); // Output: // 1 // 2 // 3 // 4 // 7 // three // 8 // 12 // 12 equals 12
You can also initialize the array without specifying the rank.
If you choose to declare an array variable without initialization, you must use the new operator to assign an array to the variable. The use of new is shown in the following example.
int[,] array5; array5 = new int[,] < < 1, 2 >, < 3, 4 >, < 5, 6 >, < 7, 8 >>; // OK //array5 = , , , >; // Error
The following example assigns a value to a particular array element.
Similarly, the following example gets the value of a particular array element and assigns it to variable elementValue .
int elementValue = array5[2, 1];
The following code example initializes the array elements to default values (except for jagged arrays).
See also
Многомерные массивы (Руководство по программированию на C#)
Массивы могут иметь несколько измерений. Например, следующее объявление создает двухмерный массив из четырех строк и двух столбцов.
Следующее объявление создает массив из трех измерений: 4, 2 и 3.
Инициализация массива
Массив можно инициализировать при объявлении, как показано в следующем примере.
// Two-dimensional array. int[,] array2D = new int[,] < < 1, 2 >, < 3, 4 >, < 5, 6 >, < 7, 8 >>; // The same array with dimensions specified. int[,] array2Da = new int[4, 2] < < 1, 2 >, < 3, 4 >, < 5, 6 >, < 7, 8 >>; // A similar array with string elements. string[,] array2Db = new string[3, 2] < < "one", "two" >, < "three", "four" >, < "five", "six" >>; // Three-dimensional array. int[,,] array3D = new int[,,] < < < 1, 2, 3 >, < 4, 5, 6 >>, < < 7, 8, 9 >, < 10, 11, 12 >> >; // The same array with dimensions specified. int[,,] array3Da = new int[2, 2, 3] < < < 1, 2, 3 >, < 4, 5, 6 >>, < < 7, 8, 9 >, < 10, 11, 12 >> >; // Accessing array elements. System.Console.WriteLine(array2D[0, 0]); System.Console.WriteLine(array2D[0, 1]); System.Console.WriteLine(array2D[1, 0]); System.Console.WriteLine(array2D[1, 1]); System.Console.WriteLine(array2D[3, 0]); System.Console.WriteLine(array2Db[1, 0]); System.Console.WriteLine(array3Da[1, 0, 1]); System.Console.WriteLine(array3D[1, 1, 2]); // Getting the total count of elements or the length of a given dimension. var allLength = array3D.Length; var total = 1; for (int i = 0; i < array3D.Rank; i++) < total *= array3D.GetLength(i); >System.Console.WriteLine(" equals ", allLength, total); // Output: // 1 // 2 // 3 // 4 // 7 // three // 8 // 12 // 12 equals 12
Можно также инициализировать массив без указания ранга.
Чтобы объявить переменную массива без инициализации, используйте оператор new для присвоения массива переменной. Использование оператора new показано в следующем примере.
int[,] array5; array5 = new int[,] < < 1, 2 >, < 3, 4 >, < 5, 6 >, < 7, 8 >>; // OK //array5 = , , , >; // Error
В следующем примере присваивается значение конкретному элементу массива.
Аналогичным образом, в следующем примере получается значение конкретного элемента массива, которое присваивается переменной elementValue .
int elementValue = array5[2, 1];
В следующем примере кода элементы массива инициализируются с использованием значений по умолчанию (кроме массивов массивов).
См. также
Заполнение двумерного массива
Заполнение двумерного массива по правилу
Здравствуйте, помогите решить задачку: Заполнить целочисленный массив А, не вводя значения его.
Заполнение двумерного массива из файла
Помогите, пожалуйста, новичку и не отсылайте по ссылкам. перечитала много, а толку никакого.
Заполнение двумерного массива по спирали
Необходимо заполнить двумерный массив по спирали. Что нужно сделать, чтобы: 1) он заполнялся.
Заполнение двумерного массива по столбцам
Напишите программу, которая заполняет массив из N чисел (каждое между 1 и 30). Для каждого.
Сообщение было отмечено abysswalkerz как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
int m = Convert.ToInt32(Console.ReadLine()); int n = Convert.ToInt32(Console.ReadLine()); int[,] matrix = new int [m,n]; Random rand = new Random(); int sum=0; for (int i=0; i matrix.GetLength(0); i++) { for (int j=0; j matrix.GetLength(1); j++) { matrix[i,j]=rand.Next(100); Console.Write(matrix[i,j]+" "); sum+=matrix[i,j]; } Console.WriteLine(); } Console.WriteLine(sum);
Заполнение двумерного массива из файла
Есть файл вещественных чисел для нижнетреугольной матрицы (файл содержит ненулевую часть матрицы.
Заполнение двумерного массива из файла
Доброго времени суток! Прошу вас, помогите! Необходимо заполнить двумерный массив из файла вида.
Заполнение двумерного массива из файла
Здравствуйте! Необходимо заполнить двумерный массив из txt файла следующим образом: первый элемент.
Ввести двумерный массив с клавиатуры
Как ввести двумерный массив с клавиатуры?
подскажите пожалуйста, как ввести двумерный массив с клавиатуры?
Как ввести двумерный массив с клавиатуры построчно, через пробел?
Как ввести двумерный массив с клавиатуры построчно, через пробел. после заполнения строчки нажмите.
Ввести двумерный массив с клавиатуры и найти сумму элементов главной диагонали
Вод 2 мерново массива с клавиатуры и просумировать побочною диагональ
Ввести двумерный массив с клавиатуры, удалить первую строку среди строк
Нужно ввести двумерный массив с клавиатуры, удалить первую строку среди строк, первые два числа.
int x = int.Parse(Console.ReadLine()); int y = int.Parse(Console.ReadLine()); int[,] array = new int[x, y];
int[] a = new int[2,2]; a[0,0] = int.Parse(Console.ReadLine()); a[0,1] = int.Parse(Console.ReadLine()); a[1,0] = int.Parse(Console.ReadLine()); a[1,1] = int.Parse(Console.ReadLine());
Почему не получается с циклом?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
static void Main(string[] args) { int x = int.Parse(Console.ReadLine()); int y = int.Parse(Console.ReadLine()); int[,] mas = new int[x, y]; Console.WriteLine("Заполни матрицу"); for (int i = 0; i x; i++) { for (int j = 0; j y; j++) { mas[i, j] = int.Parse(Console.ReadLine()); //Console.ReadLine(mat[i, j]); } } }
Сообщение было отмечено как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace inputArray { class Program { static void Main(string[] args) { Console.Write("Столбцов: "); int x = int.Parse(Console.ReadLine()); Console.Write("Строк: "); int y = int.Parse(Console.ReadLine()); int[,] mas = new int[x, y]; Console.WriteLine(); Console.WriteLine("Заполни матрицу"); for (int i = 0; i x; i++) { for (int j = 0; j y; j++) { Console.Write("mas["+i+","+j+"]: "); mas[i, j] = int.Parse(Console.ReadLine()); } } Console.WriteLine(); for (int i = 0; i x; i++) { for (int j = 0; j y; j++) { Console.Write(" mas[" + i + "," + j + "]: " + mas[i,j]+"\t"); } Console.WriteLine(); } Console.ReadLine(); } } }