// Создать и заполнить массив из трех целочисленных значений.
int[] myInts = new int[3];
myInts[0] = 100;
myInts[1] = 200;
myInts[2] = 300;
// Вывести все значения.
foreach(int i in myInts)
{
Console.WriteLine(i);
}
Console.WriteLine;
}
На заметку! Имейте в виду, что если массив объявлен, но его элементы явно не заполнены по каждому индексу, то они получат стандартное значение для соответствующего типа данных (например, элементы массива bool
будут установлены в false
, а элементы массива int
— в 0
).
Синтаксис инициализации массивов C#
В дополнение к заполнению массива элемент за элементом есть также возможность заполнять его с применением {}
). Такой синтаксис удобен при создании массива известного размера, когда нужно быстро задать его начальные значения. Например, вот как выглядят альтернативные версии объявления массива:
static void ArrayInitialization
{
Console.WriteLine("=> Array Initialization.");
// Синтаксис инициализации массивов с использованием ключевого слова new.
string[] stringArray = new string[]
{ "one", "two", "three" };
Console.WriteLine("stringArray has {0} elements", stringArray.Length);
// Синтаксис инициализации массивов без использования ключевого слова new.
bool[] boolArray = { false, false, true };
Console.WriteLine("boolArray has {0} elements", boolArray.Length);
// Инициализация массива с применением ключевого слова new и указанием размера.
int[] intArray = new int[4] { 20, 22, 23, 0 };
Console.WriteLine("intArray has {0} elements", intArray.Length);
Console.WriteLine;
}
Обратите внимание, что в случае использования синтаксиса с фигурными скобками нет необходимости указывать размер массива (как видно на примере создания переменной stringArray
), поскольку размер автоматически вычисляется на основе количества элементов внутри фигурных скобок. Кроме того, применять ключевое слово new
не обязательно (как при создании массива boolArray
).
В случае объявления intArray
снова вспомните, что указанное числовое значение представляет количество элементов в массиве, а не верхнюю границу. Если объявленный размер и количество инициализаторов не совпадают (инициализаторов слишком много или не хватает), тогда на этапе компиляции возникнет ошибка. Пример представлен ниже:
// Несоответствие размера и количества элементов!
int[] intArray = new int[2] { 20, 22, 23, 0 };
Понятие неявно типизированных локальных массивов
В главе 3 рассматривалась тема неявно типизированных локальных переменных. Как вы помните, ключевое слово var позволяет определять переменную, тип которой выводится компилятором. Аналогичным образом ключевое слово var
можно использовать для определения new
):
static void DeclareImplicitArrays
{
Console.WriteLine("=> Implicit Array Initialization.");
// Переменная а на самом деле имеет тип int[].
var a = new[] { 1, 10, 100, 1000 };
Console.WriteLine("a is a: {0}", a.ToString);
// Переменная b на самом деле имеет тип doublet].
var b = new[] { 1, 1.5, 2, 2.5 };
Console.WriteLine("b is a: {0}", b.ToString);
// Переменная с на самом деле имеет тип string [].
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT