Массивы в C#

Массивы в C#

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы познакомились с конструкторами в C#. В данной статье я бы хотел рассказать, что такое массивы в C#. Массив представляет собой коллекцию элементов одинакового типа, обращение к которым осуществляется через переменную-имя массива. Массивы могут быть одномерными, двумерными или многомерными. Массивы обычно используются для хранения связанных значений. Например, в массиве можно хранить свои доходы, расходы и прочую различную статистическую информацию. В C# массивы реализованы, как объекты.

Основным преимуществом такой реализации является то, что, если массив не используется — его настигнет сборщик мусора. Давайте разберем структуру объявления одномерного массива:

тип[] имя_массива = new тип[размер];


"тип" отвечает за тип массива, т.е. все его элементы будут иметь одинаковый тип данных. "[]" указывают на то, что будет создан одномерный массив. "размер" указывает на размер массива. Давайте объявим массив из 10 элементов и заполним его случайными числами от -10 до 10:

static void Main(string[] args)
{
	int[] numbers = new int[10];
	var rnd = new Random(); //создаем объект от класса Random()
	for (int i = 0; i < 10; i++)
	{
		numbers[i] = rnd.Next(-10,10); //генерируем случ. число от -10 до 10
	}

	for (int i = 0; i < 10; i++)
	{
		Console.WriteLine(numbers[i]); //выводим числа
	}
	Console.ReadLine();
}


Напоминаю, что нумерация начинается с нуля, а не с единицы.

Массивам можно присваивать значения поэлементно, например так: numbers[0] = 5; numbers[1] = 8. Если у нас массив состоит из большого числа элементов, то можно воспользоваться такой записью:

int[] numbers = {10, 15, 20, 12, 1, 7, -10, 7, 55};


Т.е. здесь достаточно в угловых скобках перечислить все значения массива.

Сразу домашнее задание на данный пример: необходимо вывести все числа массива, которые кратны 5.

Подсмотреть код реализации

int[] numbers = {10, 15, 20, 12, 1, 7, -10, 7, 55};
for (int i = 0; i < numbers.Length; i++)
{
	if (numbers[i] % 5 == 0) Console.WriteLine(numbers[i]);
}
Console.ReadLine();

Свойство Length показывает длину массива:

Console.WriteLine(numbers.Length); //9


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

int[] numbers = new int[10];
for (int i = 0; i < 100; i++)
{
	numbers[i] = i;
}
Console.ReadLine();


Здесь мы объявили массив из 10 элементов, а пытаемся в цикле пройтись по 100 элементам массива. При присвоении 11 элементу массива значения, вылезет ошибка.

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

Подсмотреть код реализации

static void Main(string[] args)
{
	int[,] numbers = new int[4,4];
	var rnd = new Random();
	for (int i = 0; i < 4; i++)
		for (int j = 0; j < 4; j++)
		{
			numbers[i, j] = rnd.Next(-10, 10);
		}
	for (int i = 0; i < 4; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			Console.Write(numbers[i, j] + " ");
		}
		Console.WriteLine();
	}
	int maxValue = numbers[0, 0];
	for (int i = 0; i < 4; i++)
		for (int j = 0; j < 4; j++)
		{
			if (numbers[i, j] >= maxValue) maxValue = numbers[i, j];
		}
	Console.WriteLine("Максимальное число в массиве равно {0}", maxValue);
	Console.ReadLine();
}

Думаю, что из данного примера стало ясно, как объявлять двумерный массив и как с ним работать. Если по реализации возникнут вопросы, то задавайте их в комментариях.

Трехмерный массив можно создать, к примеру, вот так: int[,,] threeDim = new int[5,7,8]. Думаю идея понятна.

До этого момента мы создавали с вами массивы, которые принято называть прямоугольными. Есть также понятие рваного массива. Строки такого массива имеют разную длину. Синтаксис определения рваного массива отличается от обычного. Давайте объявим рваный массив на примере, чтобы всё стало понятно:

int[][] rvanii = new int[3][];
rvanii[0] = new int[3]; //1 строка состоит из 3 элементов
rvanii[1] = new int[2]; //2 из 2
rvanii[2] = new int[5]; //3 из 5
//rvanii[3] = new int[3]; если запустить с данной строкой, то будет ошибка
//так, как объявлен массив из трех строк.
rvanii[1][1] = 5; //так можно обращаться к элементам рваного массива,
//в обычном массиве обращение идёт вот так [i,j]
Console.ReadLine();

В данной статье вы узнали, что такое массивы в C# и как с ними можно работать.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *