Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч


foreach(тип_элементов_в_массиве имя_перменной in


Download 2.46 Mb.
bet31/91
Sana19.10.2023
Hajmi2.46 Mb.
#1709453
TuriУчебно-методический комплекс
1   ...   27   28   29   30   31   32   33   34   ...   91
Bog'liq
Язык программирования C#

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:
1   ...   27   28   29   30   31   32   33   34   ...   91




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling