Коллекции в C#
В одной из предыдущих статей мы ознакомились с тем как создавать массивы в C#. При этом, в отличие от примитивных типов данных, таких как: строки, числа, символы; массивы делают возможным обработку группы таких объектов с заранее фиксированным количеством. Массивы полезны для работы с коллекцией известного размера. Но часто мы не знаем, какое количество элементов нам нужно собрать и использовать. В таких ситуациях нам лучше использовать коллекции. В сегодняшней статье мы ознакомимся с типом коллекций, а конкретнее списком в C#.
Пространство имен
Для работы с коллекциями необходимо подключить пространство имен System.Collections.Generic в начале нашего файла.
using System.Collections.Generic;
Создание списка
Наиболее распространенным типом коллекции в C# является список List с параметром T. T является заполнителем для типа; когда мы создаем объект типа List, нам нужно указать тип элементов, которые будут содержаться в списке.
// List<T> - список
List<string> names = new List<string>();
Подобно массивам, список также можно инициализировать указанием элементов.
List<int> years = new List<int> { 2020, 2019, 2018, 2017, 2016 };
// Для доступа к элементам списка используем цикл foreach
foreach(var year in years)
{
Console.WriteLine(year.ToString());
}
// Также доступ возможен по индексу
var day = daysOfTheWeek[3]; //"Thu"
// В заключении, мы можем добавить элементы к коллекции используя метод Add()
List<string> daysOfTheWeek = new List<string> ();
daysOfTheWeek.Add("Sun");
daysOfTheWeek.Add("Mon");
daysOfTheWeek.Add("Tue");
daysOfTheWeek.Add("Wed");
daysOfTheWeek.Add("Thu");
daysOfTheWeek.Add("Fri");
daysOfTheWeek.Add("Sat");
Методы списков.
Списки и другие коллекции реализуют набор методов, которые позволяют разработчикам управлять списком и его элементами. Ниже приведен небольшой набор этих методов:
// мы можем создать список а затем инициализировать его
List<string> names = new List<string>();
names.Add("test name");
names.Add("second name");
names.Add("third name");
// проверяем находится ли значение в списке
bool exists = names.Contains("test name");
Console.WriteLine(exists);
// True
// возвращает копию списка с элементами из диапазона
List<string> aFewNames = names.GetRange(0, 2);
// вставляем новую строку в позицию 2
names.Insert(2, "second and a half name");
// возвращает индекс элемента в списке
int index = names.IndexOf("test name");
Console.WriteLine(index);
// 0
// удаляет первый подходящий элемент
names.Remove("test name");
// полностью очищает список
names.Clear();
Объединение списков
В C# можно объединить списки одного и того же типа в один с помощью метода AddRange():
List<string> names1 = new List<string> { "C#", "F#", "Kotlin"};
List<string> names2 = new List<string> { "Python", "JavaScript"};
names1.AddRange(names2);
foreach(var el in names1)
{
Console.WriteLine(el.ToString());
}
/*вывод
C#
F#
Kotlin
Python
Javascript
*/
Таким образом мы мы научились создавать списки в C#, перебирать их поэлементно, а также использовали наиболее полезные методы для взаимодействия с ними.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.