Виды коллекций в C#

Виды коллекций в C#

Виды коллекций в 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

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

Источник