C# Массив

, ..., numbers

Объявление переменной массива не объявляет отдельные переменные по одной, такие как number0, number1, ..., number99; вместо этого вы объявляете переменную наподобие numbers, а затем используете numbers

Все массивы состоят из смежных областей памяти. Младший адрес соответствует первому элементу, а старший — последнему.

C# 中的数组

Объявление массивов

В 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];

Ниже приведён пример, в котором используются три упомянутых выше концепции, а именно объявление, присваивание и доступ к массивам:

Пример

using System;
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 для обхода массива:

Пример

using System;

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, он является базовым классом для всех массивов и предоставляет различные свойства и методы для массивов.
Другие расширения