уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Массив — это структура данных, которая содержит ряд переменных, доступ к которым осуществляется по индексу. Как и в Delphi, массивы в C# могут быть одномерными, многомерными, массивами массивов, пустыми и так далее. Сегодня рассмотрим основные моменты работы с массивами в C#.

Как создать массив в C#

Чтобы описать массив в C# необходимо использовать следующую конструкцию:

Type[] ArrayName

где Type — это тип элементов массива, а ArrayName — его имя. В квадратных скобках, используя символ «,» можно указывать размерность массива. Например, ниже представлено объявление одномерного и двумерного массива целых чисел:

int[] MyArray;
int[,] TwoDimArray;

По количеству запятых в квадратных скобках можно легко определять размерность массива: без запятых — одномерный массив, одна запятая — двумерный массив и так далее.

Количество измерений и длина каждого измерения массива задаются, в момент создания экземпляра массива. Эти значения нельзя изменить во время существования экземпляра. 

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

с помощью оператора new:

int[] MyArray = new int[4]; //создали одномерный массив на 4 значения
//заполняем массив значениями
MyArray[0] = 1;
MyArray[1] = 2;
MyArray[2] = 3;
MyArray[3] = 4;

Чтобы создать и сразу заполнить массив значениями можно воспользоваться такой конструкцией (создаст точно такой же массив, как и выше):

//создали одномерный массив на 4 значения и заполнили его
int[] MyArray = new int[4] { 1, 2, 3, 4 };

альтернативный вариант создания того же самого массива:

//создали одномерный массив на 4 значения и заполнили его
int[] MyArray = { 1, 2, 3, 4 };

При создании массива всем его элементам по умолчанию присваивается значение 0. Проверить это можно, например, так:
//создали одномерный массив на 4 значения

int[] MyArray = new int[4];
//проверяем чему равен второй элемент
Console.WriteLine("Второй элемент массива равен {0}", MyArray[1]);

В результате на экране появится строка «Второй элемент массива равен 0«.
Аналогичным образом создаются двумерные, трехмерные и вообще N-мерные массивы в C#. Например, создадим двумерный массив вещественных чисел:

float[,] FloatArray = { { 5, 5.1f, 3 }, { 2, 3.45f, 4 } };

Массивы обычно содержат элементы одного типа, как показано выше — целые и вещественные числа, строки и так далее. Однако, если сильно хочется, чтобы ваш массив содержал элементы различного типа, то это можно сделать, указав в качестве типа для массива тип object. Дело в том, что так или иначе все типы в C# напрямую или косвенно наследуются от Object (об этом позднее тоже поговорим). Таким образом, в C# можно сделать вот так:

//создали одномерный массив на 4 значения
int[] MyArray = new int[4];
//создаем массив с разными типами данных
object[] VarArray = { 1, "один", 4.45, MyArray };
//посмотрим, что внутри 
Console.WriteLine(VarArray[0]);
Console.WriteLine(VarArray[1]);
Console.WriteLine(VarArray[2]);
Console.WriteLine(VarArray[3]);

В результате выполнения такого кода мы увидим на экране следующее:

1
один
4,45
System.Int32[]

Ну и раз уж речь зашла о том, что всё в C# — объекты, то и работать с массивами как с объектами достаточно просто.

Основные свойства и методы массивов C#

Чтобы получить общее число элементов массива во всех его измерениях можно воспользоваться свойством Length:

//создали двумерный массив по 3 значения в каждом измерении
int[,] MyArray = new int[2, 3] { { 10, 3, 6 }, { 1, 2, 3 } };
//получим количество элементов по всем измерениям массива
Console.WriteLine("Общее число во всех измерениях массива равно {0}", MyArray.Length);
Console.ReadLine();

Результатом выполнения этого кода будет строка: «Общее число во всех измерениях массива равно 6«.

Чтобы узнать ранг (размерность) массива можно воспользоваться его свойством Rank:

//создали двумерный массив по 3 значения в каждом измерении
int[,] MyArray = new int[2, 3] { { 10, 3, 6 }, { 1, 2, 3 } };
//получим количество измерений массива
Console.WriteLine("Этот массив имеет {0} измерения", MyArray.Rank);
Console.ReadLine();

Результатом будет строка: «Этот массив имеет 2 измерения«.

Чтобы получить количество элементов по каждому измерению, необходимо воспользоваться методом GetLength(), например, так:

//создали одномерный массив на 4 значения
int[,] MyArray = new int[2, 3] { { 10, 3, 6 }, { 1, 2, 3 } };
//получим количество измерений массива
Console.WriteLine("Этот массив содержит {0} значения в первом измерении и {1} во втором", MyArray.GetLength(0), MyArray.GetLength(1));
Console.ReadLine();

Результатом выполнения кода будет строка: «Этот массив содержит 2 значения в первом измерении и 3 во втором»

Чтобы получить индексы первого и последнего элементов в каждом измерении массива можно воспользоваться методами GetLowerBound() и GetUpperBound().

int[,] MyArray = new int[2, 3] { { 10, 3, 6 }, { 1, 2, 3 } };
//получим количество измерений массива
Console.WriteLine("Индекс первого элемента в первом измерении {0}. Индекс последнего элемента во втором измерении {1}", MyArray.GetLowerBound(0), MyArray.GetUpperBound(1));
Console.ReadLine();

Результатом выполнения код будет строка: «Индекс первого элемента в первом измерении 0. Индекс последнего элемента во втором измерении 2«.

Перебор элементов массива

Чтобы перебрать все элементы массива, как известно, обычно пользуются циклами, например, for. Про различные циклы в C# мы ещё поговорим, а пока воспользуемся одним из них — циклом foreach.  Ближайшим аналогом цикла foreach в Delphi является цикл for..in.

Перебор элементов массива с использованием foreach может выглядеть следующим образом:

//создали двумерный массив
int[,] MyArray = new int[2, 3] { { 10, 3, 6 }, { 1, 2, 3 } };
//перебор всех элементов двумерного массива по всем измерениям
foreach (int i in MyArray)
  {
    Console.WriteLine(i);
  }
Console.ReadLine();

Результатом выполнения будет:

10
3
6
1
2
3

Пожалуй, на этом пока всё, что касается работы с массивами в C#. Возможно, что в дальнейшем я вернусь к этой теме, а пока информации должно быть достаточно, чтобы иметь малейшее представление о том, что из себя представляют массивы в C# и как с ними работать.

Итак, сегодня мы узнали:

Книжная полка

Описание: практическое руководство познакомит вас с простыми рекомендациями, помогающими писать программное обеспечение, которое легко поддерживать и адаптировать. Написанная консультантами компании Software Improvement Group книга содержит ясные и краткие советы по применению рекомендаций на практике. Примеры для этого издания написаны на языке C#, но существует аналогичная книга с примерами на языке Java.
купить книгу delphi на ЛитРес
Описание: Книга представляет собой сборник советов, алгоритмов и готовых примеров программ на языке C# в среде MS Visual Studio 2005/2008 из различных областей: работа с формами и элементами управления, папками и файлами, мышью и клавиатурой, мультимедиа и графикой, использование технологий WMI и WSH, взаимодействие с MS Office и другими приложениями, работа в локальной сети и Интернете, особенности использования функций Windows API и др.
купить книгу delphi на ЛитРес
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии