// Продемонстрировать одномерный массив.
using System;
class ArrayDemo {
static void Main() {
int[] sample = new int[10];
int i;
for(i =0; i < 10; i = i + 1) sample[i] = i;
for(i = 0; i < 10; i = i + 1)
Console.WriteLine("sample[" + i + "]: " + sample[i]);
}
}
При выполнении этой программы получается следующий результат.
sample[0]: 0
sample[1]: 1
sample[2]: 2
sample[3]: 3
sample[4]: 4
sample[5]: 5
sample[6]: 6
sample[7]: 7
sample[8]: 8
sample[9]: 9
Схематически массив sample
можно представить таким образом.

Массивы часто применяются в программировании потому, что они дают возможность легко обращаться с большим числом взаимосвязанных переменных. Например, в приведенной ниже программе выявляется среднее арифметическое ряда значений, хранящихся в массиве nums
, который циклически опрашивается с помощью оператора цикла for
.
// Вычислить среднее арифметическое ряда значений.
using System;
class Average {
static void Main() {
int[] nums = new int[10];
int avg = 0;
nums[0] = 99;
nums[1] = 10;
nums[2] = 100;
nums[3] = 18;
nums[4] = 78;
nums[5] = 23;
nums[6] = 63;
nums[7] = 9;
nums[8] = 87;
nums[9] = 49;
for (int i=0; i < 10; i++) avg = avg + nums[i];
avg = avg / 10;
Console.WriteLine("Среднее: " + avg);
}
}
Результат выполнения этой программы выглядит следующим образом.
Среднее: 53
Инициализация массива
В приведенной выше программе первоначальные значения были заданы для элементов массива nums
вручную в десяти отдельных операторах присваивания. Конечно, такая инициализация массива совершенно правильна, но то же самое можно сделать намного проще. Ведь массивы могут инициализироваться, когда они создаются. Ниже приведена общая форма инициализации одномерного массива:
тип[] имя_массива = {val1, val2, val3, ..., valN) ;
где val1 -valN обозначают первоначальные значения, которые присваиваются по очереди, слева направо и по порядку индексирования. Для хранения инициализаторов массива в C# автоматически распределяется достаточный объем памяти. А необходимость пользоваться оператором new явным образом отпадает сама собой. В качестве примера ниже приведен улучшенный вариант программы, вычисляющей среднее арифметическое.
// Вычислить среднее арифметическое ряда значений.
using System;
class Average {
static void Main() {
int[] nums = { 99, 10, 100, 18, 78, 23,
63, 9, 87, 49 };
int avg = 0;
for(int i=0; i < 10; i++)
avg = avg + nums[i];
avg = avg /10;
Console.WriteLine("Среднее: " + avg);
}
}
Любопытно, что при инициализации массива можно также воспользоваться оператором new, хотя особой надобности в этом нет. Например, приведенный ниже фрагмент кода считается верным, но избыточным для инициализации массива nums в упомянутой выше программе.
int[] nums = new int[] { 99, 10, 100, 18, 78, 23,
63, 9, 87, 49 };
Несмотря на свою избыточность, форма инициализации массива с оператором new оказывается полезной в том случае, если новый массив присваивается уже существующей переменной ссылки на массив. Например:
int[] nums;
nums = new int[] {99,10,100,18,78, 23,
63, 9, 87, 49 };
В данном случае переменная nums
объявляется в первом операторе и инициализируется во втором.
И последнее замечание: при инициализации массива его размер можно указывать явным образом, но этот размер должен совпадать с числом инициализаторов. В качестве примера ниже приведен еще один способ инициализации массива nums.
int[] nums = new int[10] {99, 10, 100, 18, 78, 23,
63, 9, 87, 49 };
Читать дальше