Виды коллекций в C#
Как известно основным строительным блоком при создании программ являются переменные и структуры данных. И C# не является исключением. И каждый тип данных имеет собственное представление, и набор функций.
В C# есть множество типов. Одни из них это коллекции, включающие в себя список, словарь, очередь и так далее. В одной из статей мы рассматривали что представляет из себя список с параметром. И в сегодняшней статье мы рассмотрим оставшиеся типы коллекций: словарь, очередь, и стек.
И прежде вспомним что такое коллекции. Коллекции - это группы элементов одного типа, но с регулируемым размером; они более гибкие, чем массивы. Коллекции включают базовый класс List, а также более специализированные классы Dictionary, Queue и Stack, а также другие. Все они находятся в пространстве имен System.Collections.Generic.
Словарь.
Словарь (Dictionary) представляет из себя тип данных, в котором каждому набору значений соответствует один ключ. Т.е. он хранит данные в виде ключ-значение.
Чтобы добавить новые данные, используем как и в случае со списками метод Add().
// обязательно подключаем данную библиотеку
using System.Collections.Generic
Dictionary<string, string> imageTypes = new Dictionary<string, string>();
//imageTypes.Add("key", "value");
imageTypes.Add("bmp", "Bitmap");
imageTypes.Add("jpeg", "Joint Photographic Experts Group");
imageTypes.Add("png", "Portable Network Graphics");
imageTypes.Add("gif", "Graphics Interchange Format");
// Также в случае добавление в словарь, существующего ключа метод // Add вызовет исключение
imageTypes.Add("jpeg", "JPEG"); //EXCEPTION
// System.ArgumentException: "An item with the same key has already
// Для извлечения значения из словаря исподьзуем ключ
string name = imageTypes["png"]; //"Portable Network Graphics"
Очередь.
Очередь (Queue)- это структура реализующая концепцию первым пришел - первым вышел. Это означает, что элементы коллекции будут удалены из коллекции в том же порядке, в котором они были добавлены.
// Для добавления элементов в очередь используем метод Enqueue(),
// а для удаления Dequeue()
Queue<int> orders = new Queue<int>();
orders.Enqueue(1);
orders.Enqueue(2);
orders.Enqueue(3);
orders.Enqueue(4);
var firstValue = orders.Dequeue(); //1
var secondValue = orders.Dequeue(); //2
Стек.
Стек (Stack)- это набор элементов, реализованных в стиле последним пришел- первым вышел. Это означает, что самый последний добавленный элемент будет удален первым. Элементы, добавленные в стопку, называются вытесненными или pushed, а удаленные элементы называются выскочившими- popped.
// Для добавления элементов в Стек используем метод Push(),
// а для удаления метод Pop()
Stack<int> elements = new Stack<int>();
elements.Push(1);
elements.Push(2);
elements.Push(3);
elements.Push(4);
var firstValue = elements.Pop(); //4
var secondValue = elements.Pop(); //3
Таким образом, мы рассмотрели специализированные виды коллекций и увидели, как они себя ведут. И конечно количество структур данных не исчерпывается указанными в статье.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.