Массив — это структура данных, которая содержит ряд переменных, доступ к которым осуществляется по индексу. Как и в 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# и как с ними работать.
Итак, сегодня мы узнали:
- какие бывают массивы и как их описывать и создавать в C#
- какие свойства и методы есть для работы с массивом как объектом в C#
- как перебирать элементы массива с помощью цикла
foreach.
Книжная полка
![]() |
Описание: практическое руководство познакомит вас с простыми рекомендациями, помогающими писать программное обеспечение, которое легко поддерживать и адаптировать. Написанная консультантами компании Software Improvement Group книга содержит ясные и краткие советы по применению рекомендаций на практике. Примеры для этого издания написаны на языке C#, но существует аналогичная книга с примерами на языке Java.
|
![]() |
![]() |
Название: C#. Советы программистам
Описание: Книга представляет собой сборник советов, алгоритмов и готовых примеров программ на языке C# в среде MS Visual Studio 2005/2008 из различных областей: работа с формами и элементами управления, папками и файлами, мышью и клавиатурой, мультимедиа и графикой, использование технологий WMI и WSH, взаимодействие с MS Office и другими приложениями, работа в локальной сети и Интернете, особенности использования функций Windows API и др.
|
![]() |



