Одновимірні масиви використовуються в програмах найчастіше. Варіанти опису масиву:
тип[] ім'я;
тип[] ім'я = new тип [ розмірність ];
тип[] ім'я = {список_ініціалізаторів };
тип[] ім'я = новий тип [] { список ініціалізаторів };
тип[] ім'я = new тип [ розмірність ] { список ініціалізаторів };
Приклади описів (один приклад для кожного варіанту опису):
int[] а; // 1 елементів немає
int[] b new int[4]; // 2 елементи дорівнюють 0
int[] c = { 61, 2, 5, -9 }; // 3 new мається на увазі
int[] d = new int[] { 61, 2, 5, -9}; // 4 розмірність обчислюється
int[] e = new int[4] { 61, 2, 5, -9}; // 5 надмірний опис
Тут описано п'ять масивів. Відмінність першого оператора від останніх полягає в тому, що в нім, фактично, описано тільки посилання на масив, а пам'ять під елементи масиву не виділена. Якщо список ініціалізації не заданий, розмірність може бути не тільки константою, але і виразом типу, що приводиться до цілого.
У кожному з решти масивів по чотири елементи цілого типу. Як видно з операторів 3-5, масив при описі можна ініціалізувати. Якщо при цьому не задана розмірність (оператор 3), кількість елементів обчислюється по кількості ініціалізованих значень. Для полів об'єктів і локальних змінних можна не вказувати операцію new, вона буде виконана за умовчанням (оператор 2). Якщо присутня і розмірність, і список ініціалізаторів, розмірність має бути константою (оператор 4).
Якщо кількість ініціалізованих значень не збігається з розмірністю, виникає помилка компіляції.
Як приклад розглянемо програму, яка визначає суму і кількість від’ємних елементів, а також максимальний елемент масиву, що складається з 6 цілочи-сельних елементів (лістинг 6.1).
Лістинг 6.1 . Робота з одновимірним масивом
using System;
namespace ConsoleApplication1
{
class Classl
{
static void Main( )
{
const int n = 6;
int i;
int[] a = new int[n] {3, 12, 5, -9, 8, -4};
Console.WriteLine("Початковий масив:");
for (i = 0; i<n; i ++)
Console.Write("\t" + a[i ]);
Console.WriteLine( );
long sum = 0; // сума від’ємних елементів
int num = 0; // кількість від’ємних елементів
for (i = 0; i< n; i ++)
if (a[i] < 0 )
{
sum += a[i];
num ++;
}
Console.WriteLine( "Сума від’ємних елементів= " + sum );
Console.WriteLine("Кількість від’ємних елементів = " + num);
int max = a[0]; // максимальний елемент
for (i =1; i < n; i ++)
if ( a[i ] > max ) max = a[i];
Console.WriteLine("Максимальний елемент = " + max );
}
}
}