Задать двумерный массив си шарп

Многомерные массивы (Руководство по программированию на 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]; 

В следующем примере кода элементы массива инициализируются с использованием значений по умолчанию (кроме массивов массивов).

См. также

Источник

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.

Читайте также:  Java lang verifyerror inconsistent stackmap frames at branch target 47 exception details

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#)

В структуре данных массива можно хранить несколько переменных одного типа. Чтобы объявить массив, следует указать тип его элементов. Если требуется, чтобы массив мог хранить элементы любого типа, можно указать object в качестве его типа. В унифицированной системе типов C# все типы, стандартные и определяемые пользователем, ссылочные типы и типы значений напрямую или косвенно наследуются из Object.

Читайте также:  letter-spacing

Пример

В следующих примерах создаются одномерные массивы, многомерные массивы и массивы массивов:

class TestArraysClass < static void Main() < // Declare a single-dimensional array of 5 integers. int[] array1 = new int[5]; // Declare and set array element values. int[] array2 = new int[] < 1, 3, 5, 7, 9 >; // Alternative syntax. int[] array3 = < 1, 2, 3, 4, 5, 6 >; // Declare a two dimensional array. int[,] multiDimensionalArray1 = new int[2, 3]; // Declare and set array element values. int[,] multiDimensionalArray2 = < < 1, 2, 3 >, < 4, 5, 6 >>; // Declare a jagged array. int[][] jaggedArray = new int[6][]; // Set the values of the first array in the jagged array structure. jaggedArray[0] = new int[4] < 1, 2, 3, 4 >; > > 

Общие сведения о массивах

Массив имеет следующие свойства:

  • Массив может быть одномерным, многомерным или массивом массивов.
  • Количество измерений и длина каждого из измерений задаются, когда создается экземпляр массива. Эти значения нельзя изменить во время существования экземпляра.
  • Используемые по умолчанию значения числовых элементов массива равны нулю, и элементам ссылки присвоено значение null .
  • В массиве массивов элементы являются ссылочными типами и инициализируются значением null .
  • Массивы индексируются от нуля: массив с n элементами индексируется от 0 до n-1 .
  • Элементы массива могут иметь любой тип, в том числе тип массива.
  • Типы массивов — это ссылочные типы, производные от абстрактного базового типа . Все массивы реализуют IList и IEnumerable. Для итерации по массиву можно использовать оператор foreach. Одномерные массивы также реализуют IList и IEnumerable .

Поведение значения по умолчанию

  • Для типов значений элементы массива инициализируются со значением по умолчанию — шаблоном с нулевыми битами; элементы будут иметь значение .
  • Все ссылочные типы (в том числе не допускающие значения NULL) имеют значения .
  • Для типов, допускающих значения NULL, параметр HasValue имеет значение false , а для элементов будет установлено значение null .

Массивы как объекты

В C# массивы представляют собой реальные объекты, а не просто адресуемые области непрерывной памяти, как в C и C++. Array — это абстрактный базовый тип для всех типов массивов. Вы можете использовать свойства и другие члены класса, входящие в Array. Например, с помощью свойства Length можно получить длину массива. В следующем коде значение длины массива numbers ( 5 ) присваивается переменной с именем lengthOfNumbers :

int[] numbers = < 1, 2, 3, 4, 5 >; int lengthOfNumbers = numbers.Length; 

В классе Array представлено множество других полезных методов и свойств для сортировки, поиска и копирования массивов. В следующем примере свойство Rank используется для отображения количества измерений массива.

class TestArraysClass < static void Main() < // Declare and initialize an array. int[,] theArray = new int[5, 10]; System.Console.WriteLine("The array has dimensions.", theArray.Rank); > > // Output: The array has 2 dimensions. 

См. также раздел

Дополнительные сведения см. в спецификации языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.

Читайте также:  Php удаление пробелов между тегами

Источник

Многомерные массивы

Многомерным называется такой массив, который отличается двумя или более измерениями, причем доступ к каждому элементу такого массива осуществляется с помощью определенной комбинации двух или более индексов. Многомерный массив индексируется двумя и более целыми числами.

Двумерные массивы

Простейшей формой многомерного массива является двумерный массив. Местоположение любого элемента в двумерном массиве обозначается двумя индексами. Такой массив можно представить в виде таблицы, на строки которой указывает один индекс, а на столбцы — другой. Пример объявления и инициализации двумерного массива показан ниже:

// Объявляем двумерный массив int[,] myArr = new int[4, 5]; Random ran = new Random(); // Инициализируем данный массив for (int i = 0; i < 4; i++) < for (int j = 0; j < 5; j++) < myArr[i, j] = ran.Next(1, 15); Console.Write("\t", myArr[i, j]); > Console.WriteLine(); >

Двумерный массив

Обратите особое внимание на способ объявления двумерного массива. Схематическое представление массива myArr показано ниже:

Схематическое представление двумерного массива

Если вам приходилось раньше программировать на С, С++ или Java, то будьте особенно внимательны, объявляя или организуя доступ к многомерным массивам в C#. В этих языках программирования размеры массива и индексы указываются в отдельных квадратных скобках, тогда как в C# они разделяются запятой.

Массивы трех и более измерений

В C# допускаются массивы трех и более измерений. Ниже приведена общая форма объявления многомерного массива:

тип[. ] имя_массива = new тип[размер1, размер2, . размеры];

Ниже приведен пример программы, использующей трехмерный массив:

int[,,] myArr = new int[5,5,5]; for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++) for (int k = 0; k < 5; k++) myArr[i, j, k] = i + j + k;

Инициализация многомерных массивов

Для инициализации многомерного массива достаточно заключить в фигурные скобки список инициализаторов каждого его размера:

где val обозначает инициализирующее значение, а каждый внутренний блок — отдельный ряд. Первое значение в каждом ряду сохраняется на первой позиции в массиве, второе значение — на второй позиции и т.д. Обратите внимание на то, что блоки инициализаторов разделяются запятыми, а после завершающей эти блоки закрывающей фигурной скобки ставится точка с запятой.

Ниже в качестве примера приведена общая форма инициализации двумерного массива:

Источник

Оцените статью