Unetway

C # - Массивы

Массив хранит последовательный набор фиксированного размера элементов того же типа. Массив используется для хранения коллекции данных, но часто бывает полезно придумать массив как набор переменных того же типа, который хранится в смежных ячейках памяти.

Вместо объявления отдельных переменных, таких как number0, number1, ... и number99, вы объявляете одну переменную массива, такую ​​как числа, и используете числа [0], числа [1] и ..., числа [99] для представления отдельные переменные. К конкретному элементу массива обращается индекс.

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

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

Чтобы объявить массив в C #, вы можете использовать следующий синтаксис:

datatype[] arrayName;

где,

  • datatype используется для указания типа элементов в массиве.
  • [] указывает ранг массива. Ранг определяет размер массива.
  • arrayName указывает имя массива.

Например,

double[] balance;

Инициализация массива

Объявление массива не инициализирует массив в памяти. Когда инициализируется переменная массива, вы можете присвоить значения массиву.

Массив является ссылочным типом, поэтому вам нужно использовать новое ключевое слово для создания экземпляра массива. Например,

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 is an array of 10 integers */
         int i,j;

         /* initialize elements of array n */
         for ( i = 0; i < 10; i++ ) {
            n[ i ] = i + 100;
         }
         
         /* output each array element's value */
         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

Использование Еогеасп Loop

В предыдущем примере мы использовали цикл for для доступа к каждому элементу массива. Вы также можете использовать оператор foreach для итерации по массиву.

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         int []  n = new int[10]; /* n is an array of 10 integers */
         
         /* initialize elements of array n */
         for ( int i = 0; i < 10; i++ ) {
            n[i] = i + 100;
         }
         
         /* output each array element's value */
         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 # поддерживает многомерные массивы, которые являются массивами массивов.

Передача массивов в функции

Вы можете передать функции указателю на массив, указав имя массива без индекса.

Массивы параметров

Это используется для передачи неизвестного числа параметров функции.

Класс массива

Определенный в пространстве имен System, это базовый класс для всех массивов и предоставляет различные свойства и методы для работы с массивами.