Доступ к элементам массива.
Доступ к многомерным массивам обычно осуществляется посредствам вложенных циклов так, что каждому измерению соответствует свой цикл.
static void Main(string[] args)
{
double[,] DoubleArr = new double[10, 15];
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
DoubleArr[i, j] = i + j;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
Console.Write(DoubleArr[i, j] + "\t");
Console.WriteLine();
}
}
Лист. 7.11
В листинге создается двумерный массив вещественных чисел. Для заполнения этого массива применяются два вложенных цикла for(;;), они же применяются для вывода.
Вывод примера имеет табличный вид, вот первая и последняя строки этой таблицы:
0 1 2 3 4 5 6 7 8 9
9 10 11 12 13 14 15 16 17 18
Вывод. 7.3
Используемый для вывода цикл for(;;) в этом примере можно заменить на цикл foreach(), который выводит все элементы массива.
static void Main(string[] args)
{
double[,] DoubleArr = new double[10, 15];
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
DoubleArr[i, j] = i + j;
int Lines = 1;
foreach (int Element in DoubleArr)
{
Console.Write(Element + "\t");
if (Lines % 10 == 0)
Console.WriteLine();
Lines++;
}
}
Лист. 7.12
Вывод листинга аналогичен выводу предыдущего примера.
7.3. Массивы массивов или рваные массивы
Многомерные массивы часто не обеспечивают необходимой гибкости так, как должны иметь по каждому измерению одно и тоже число элементов. Иногда возникает потребность хранить на каждом измерении разное количество элементов. Например, один двумерный массив может хранить информацию обо всех клиентах фирмы во всех её филиалах, но в каждом филиале количество клиентов разное, поэтому простой квадратный массив не подходит.
Do'stlaringiz bilan baham: |