Массивы в C#
![Массивы в C#](/images/articles/csharp-arrays.png)
В данной статье мы разберем основы работы с массивами в C#: их свойства и базовые операции, которые можно над ними выполнять.
Массивы используются для хранения нескольких значений одного типа в переменной с одним названием. Чтобы объявить массив, необходимо определить тип переменной, и сразу после него указать квадратные скобки:
string[] firms;
Вот таким образом мы объявили переменную, которая содержит массив строк.
Чтобы добавить значения в массив, мы можем использовать литерал массива - список значений, разделенный запятыми, внутри фигурных скобок:
string[] firms = {"Yandex", "Google", "Apple", "Amazon"};
Чтобы создать массив из целых чисел, можно написать:
int[] ages = { 8, 12, 21, 42 };
Доступ к элементам массива
Для того, чтобы получить доступ к определенному элементу массива, необходимо использовать его индекс, передав значение индекса в квадратные скобки. При этом, надо учитывать, что индексы массива начинаются с 0: [0] - это первый элемент. [1] - это второй элемент и т. д.
string[] firms = {"Yandex", "Google", "Apple", "Amazon"};
Console.WriteLine(firms[0]); // Yandex
Изменение элемента массива
firms[0] = "Mail.Ru";
string[] firms = {"Yandex", "Google", "Apple", "Amazon"};
firms[0] = "Mail.Ru";
Console.WriteLine(firms[0]);
Длина массива
Чтобы узнать, сколько элементов содержит массив в C#, нужно использовать свойство Length:
string[] firms = {"Yandex", "Google", "Apple", "Amazon"};
Console.WriteLine(firms.Length); // 4
Цикл по массиву
По всем элементам массива в C# можно пройтись с помощью цикла for, используя свойство Length как ограничивающее условие.
В следующем примере выводятся все элементы массива cars:
string[] firms = {"Yandex", "Google", "Apple", "Amazon"};
int firmsLen = firms.Length;
for (int i = 0; i < firmsLen; i++)
{
Console.WriteLine(firms[i]);
}
Цикл foreach
Существует также цикл foreach, который используется исключительно для перебора элементов в массиве: У него следующий синтаксис:
string[] firms = {"Yandex", "Google", "Apple", "Amazon"};
foreach (string firm in firms)
{
Console.WriteLine(firm);
}
Если вы сравните цикл for и цикл foreach, то увидите, что цикл foreach проще писать, он не требует счетчика (c использованием свойства Length) и более читаем, поэтому, его стоит использовать настолько часто, насколько возможно.
Сортировка Массивов
У массивов существует множество методов, один из них - Sort(), который сортирует массив по алфавиту или в порядке возрастания:
string[] firms = {"Yandex", "Google", "Apple", "Amazon"};
// сортирует строки
Array.Sort(firms);
foreach (string firm in firms)
{
Console.WriteLine(firm);
}
int[] ages = {5, 1, 8, 9};
// сортирует числа
Array.Sort(ages);
foreach (int age in ages)
{
Console.WriteLine(age);
}
Пространство имен System.Linq
Также наиболее общеупотребительные методы массивов есть в пространство имен System.Linq: Min, Max и Sum. Подключается это пространство имен с помощью директивы using, а методы вызываются непосредственно на переменной массива:
using System;
using System.Linq; // подключаем, для работы с массивами
namespace MyApplication
{
class Program
{
static void Main(string[] args)
{
int[] paymenst = {500, 1200, 800, 190};
Console.WriteLine(paymenst.Max()); // возвращает наибольшее значение
Console.WriteLine(paymenst.Min()); // возвращает наименьшее значение
Console.WriteLine(paymenst.Sum()); // возвращает сумму элементов
}
}
}
Другие способы создания массива
В C# массивы могут быть созданы различными способами:
// Создаем массив из четырех элементов, а значение добавляется позже
string[] firms = new string[4];
// Создаем массив из четырех элементов и сразу же добавляем значения
string[] firms = new string[4] {"Yandex", "Google", "Apple", "Amazon"};
// Создать массив из четырех элементов без указания размера
string[] firms = new string[] {"Yandex", "Google", "Apple", "Amazon"};
// Создаем массив из четырех элементов, без ключевого слова new и не указывая размер
string[] firms = {"Yandex", "Google", "Apple", "Amazon"};
Однако заметьте, что если вы сначала объявите переменную, которая будет содержать массив, а инициализируете ее позже, то Вам придется использовать ключевое слово new:
// Объявить массив
string[] firms;
// Добавить значения, используя new
firms = new string[] {"Yandex", "Google", "Apple", "Amazon"};
// так не получится - вызовет ошибку
firms = {"Yandex", "Google", "Apple", "Amazon"};
Таким образом, Вы познакомились с основными особенностями массивов в C#.
-
-
Михаил Русаков
Комментарии (5):
Благодарю! Хочу попросить о помощи в C#. Не могу довести задуманное до завершения. Не понимаю (а может быть это вообще не возможно сделать в C#?). Вопрос: 6 кнопок в ряд. По завершении программы на них надписи Х, О и свободные от текста. Как программно (C#) подсчитать сколько Х, сколько О и сколько свободных. Индексы кнопок от 0 до 5. Заранее благодарю. Мой e-mail: [email protected]
Ответить
Здравствуйте! Уточните, пожалуйста, что за программа - сами написали или нет? Желательно, если есть, покажите что Вы уже сами сделали
Ответить
Программу писал сам (иногда подглядывая в интернет). Это моя первая на C#. За основу взяты "Крестики-Нолики 3х3". Но кнопки расположены в 1 ряд всего 6 шт. Две кнопки управления для 2 игроков. Кликая по кнопке получаем рандомно значения от 1 до 6, первая кнопка играет за "Х", вторая - за "О". Причем тексты на кнопках не блокируются, поэтому на них теперь записываются "О" и вытираются "Х" если совпадают рандомные значения. В Итоге есть сколько то "Х", сколько то "О" и есть кнопки вообще пустые. Вот тут я и притормозил. Как сосчитать сколько "Х", сколько "О" и сколько "Пустых"? Могу выслать листинг, только укажите как и куда?
Ответить
Разместите, пожалуйста, на Github Ваш код, и дайте ссылку на репозиторий
Ответить
Спасибо! Но к указанному Вами сайту я не имею никакого отношения. Вы единственные к которым я подписался из-за C#. Хорошо. не утруждайтесь. Решу проблему сам. Спасибо что отвечали.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.