C# Массив
, ..., numbers
Объявление переменной массива не объявляет отдельные переменные по одной, такие как number0, number1, ..., number99; вместо этого вы объявляете переменную наподобие numbers, а затем используете numbers
Все массивы состоят из смежных областей памяти. Младший адрес соответствует первому элементу, а старший — последнему.
Объявление массивов
В C# можно объявить массив с помощью следующего синтаксиса:
datatype[] arrayName;
где,
- datatypeИспользуется для указания типа элементов, хранящихся в массиве.
- [ ]Задает ранг (размерность) массива. Ранг определяет размер массива.
- arrayNameЗадает имя массива.
Например:
double[] balance;
Инициализация массивов
Объявление массива не инициализирует массив в памяти. Когда вы инициализируете переменную массива, вы можете присвоить значения массиву.
Массивы являются ссылочными типами, поэтому нужно использоватьnewключевое слово для создания экземпляра массива.
Например:
double[] balance = new double[10];
Присваивание массиву
Вы можете присвоить значение отдельному элементу массива, используя номер индекса, например:
double[] balance = new double[10]; balance[0] = 4500.0;
Вы можете присвоить значения массиву одновременно с объявлением массива, например:
double[] balance = { 2340.0, 4523.69, 3421.0};
Вы также можете создать и инициализировать массив, например:
int [] marks = new int[5] { 99, 98, 92, 97, 95};
В приведенных выше случаях вы также можете опустить размер массива, например:
int [] marks = new int[] { 99, 98, 92, 97, 95};
Вы также можете присвоить переменную массива другой целевой переменной массива. В этом случае целевая переменная и источник указывают на одну и ту же область памяти:
int [] marks = new int[] { 99, 98, 92, 97, 95};
int[] score = marks;
При создании массива компилятор C# неявно инициализирует каждый элемент массива значением по умолчанию в зависимости от типа массива. Например, все элементы массива int инициализируются значением 0.
Доступ к элементам массива
Доступ к элементам осуществляется с помощью имени массива с индексом. Для этого индекс элемента помещается в квадратные скобки после имени массива. Например:
double salary = balance[9];
Ниже приведён пример, в котором используются три упомянутых выше концепции, а именно объявление, присваивание и доступ к массивам:
Пример
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
int [] n = new int[10]; /* n — массив из 10 целых чисел */
int i,j;
/* Инициализировать элементы массива n */
for ( i = 0; i < 10; i++ )
{
n[ i ] = i + 100;
}
/* вывести значение каждого элемента массива */
for (j = 0; j < 10; j++ )
{
Console.WriteLine("Element[{0}] = {1}", j, n[j]);
}
Console.ReadKey();
}
}
}
Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
Использованиеforeach-циклов
В предыдущем примере мы использовали цикл for для доступа к каждому элементу массива. Вы также можете использовать foreach-оператор для обхода массива.
В следующем примере используется foreach для обхода массива:
Пример
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
int [] n = new int[10]; /* n — массив из 10 целых чисел */
/* Инициализировать элементы массива n */
for ( int i = 0; i < 10; i++ )
{
n[i] = i + 100;
}
/* вывести значение каждого элемента массива */
foreach (int j in n )
{
int i = j-100;
Console.WriteLine("Element[{0}] = {1}", i, j);
}
Console.ReadKey();
}
}
}
Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
Подробности о массивах в C#
В C# массивы очень важны, и есть больше деталей, которые вам нужно понять. Ниже перечислены некоторые важные концепции, связанные с массивами, в которых программисты C# должны хорошо разбираться:
| Концепции | Описание |
|---|---|
| Многомерные массивы | C# поддерживает многомерные массивы. Простейшей формой многомерного массива является двумерный массив. |
| Зубчатый массив | C# поддерживает зубчатые массивы, которые представляют собой массивы массивов. |
| Передача массивов в функции | Вы можете передать указатель на массив в функцию, указав имя массива без индекса. |
| Массив параметров | Это часто используется для передачи в функцию неизвестного числа параметров. |
| Класс Array | Определен в пространстве имен System, он является базовым классом для всех массивов и предоставляет различные свойства и методы для массивов. |