Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч
foreach(тип_элементов_в_массиве имя_перменной in
Download 2.46 Mb.
|
Язык программирования C#
- Bu sahifa navigatsiya:
- 7.2. Двух и многомерные массивы
- Объявление массива и выделение памяти
foreach(тип_элементов_в_массиве имя_перменной in имя_массива)
{ тело цикла; } Изменим предыдущий пример так, чтобы для вывода элементов массива использовался цикл foreach(). static void Main(string[] args) { int[] IntArr = new int[10000]; Random rnd = new Random(DateTime.Now.Millisecond); for (int i = 0; i < 10000; i++) IntArr[i] = rnd.Next(); foreach (int Element in IntArr) Console.WriteLine(Element); } Лист. 7.7 Это пример аналогичен предыдущему, за исключением замены цикла for(;;) на цикл foreach() для вывода элементов массива. Вывод листинга аналогичен выводу предыдущего примера. 7.2. Двух и многомерные массивы Иногда одномерного массива бывает недостаточно, тогда приходится использовать более сложные многомерные массивы. Двумерный массив – это пронумерованная последовательность последовательности элементов некоторого типа, объединенная общим именем, трехмерный массив – пронумерованная последовательность последовательности, последовательности некоторого типа и так далее. Для доступа к элементам двумерного массива используется имя массива и два индекса, трехмерного – имя и три индекса и так далее. Объявление массива и выделение памяти. Объявление многомерных массивов схоже с объявлением одномерных, для объявления многомерных массивов некоторого типа используется следующая конструкции: тип[,] имя_массива; тип[ , ,] имя_массива; Количество запятых в объявлении определяет размерность массива по следующей формуле: размерность = количество_запятых – 1 int[,] Integers2D; int[, ,] Integets3D; int[, , , , , ,] Integers7D; double[,] Reals2D; double[, ,] Reals3D; string[,] Strings2D; string[, ,] Strings3D; Лист. 7.8 В этом примере объявляются семь разных многомерных массивов: двух-, трех- и семимерные массивы целых чисел, двух- и трехмерные массивы вещественных чисел, двух-, трехмерные массивы строк. Чтобы выделить под многомерные массивы некоторого типа память используется следующая конструкция, основанная на операторе new. имя_массива = new тип[размерность1 размерность2]; имя_массива = new тип[размерность1, размерность2, размерность3]; Количество определяемых размерностей зависит от мерности массива. Integers2D = new int[3, 3]; Integets3D = new int[5, 5, 6]; Integers7D = new int[1, 2, 3, 4, 5, 6, 7]; Reals2D = new double[5, 5]; Reals3D = new double[100, 100, 100]; Strings2D = new string[1000, 10000]; Strings3D = new string[100000, 100000, 1000000]; Лист. 7.9 В этом листинге мы выделяем память под объявленные выше массивы. С многомерными, однако, следует быть осторожным так, как они могут затребовать очень большое количество памяти, и при её выделении может возникнуть исключение System.OutOfMemoryException. Как и в случае с одномерными массивами, оператор new инициализирует элементы многомерного массива значениями по умолчанию. Аналогично одномерным массивам, многомерные массивы могут быть инициализированы при создании. Также существуют три варианта такой инициализации. int[,] IntArr2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; string[,] StrArr2D = new string[,] {{"love", "me"}, {"hate", "you"}}; int[,] IntArr2D = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; string[,] StrArr2D = { { "love", "me" }, { "hate", "you" } }; int[,] IntArr2D; IntArr2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; string[,] StrArr2D; StrArr2D = new string[,] { { "love", "me" }, { "hate", "you" } }; Лист. 7.10 Все три способа инициализации абсолютно идентичны. Download 2.46 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling