← Назад к вопросам

Для чего нужны коллекции?

1.0 Junior🔥 31 комментариев
#Коллекции и структуры данных

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Для чего нужны коллекции в C#

Коллекции — это контейнеры для управления группами объектов. Они предоставляют эффективные методы для добавления, удаления, поиска и итерации по элементам.

Основные типы коллекций

1. List<T>

var numbers = new List<int> { 1, 2, 3 };
numbers.Add(4);
numbers.Remove(1);
var first = numbers[0];
foreach (var n in numbers) { }

2. Dictionary<K,V>

var dict = new Dictionary<string, int>
{
    { "Alice", 30 },
    { "Bob", 25 }
};
dict["Charlie"] = 35;
if (dict.TryGetValue("Alice", out int age))
    Console.WriteLine(age);

3. HashSet<T>

var unique = new HashSet<int> { 1, 2, 3, 2 };
unique.Add(4);
var contains = unique.Contains(1);
unique.Remove(2);

4. Queue<T>

var queue = new Queue<string>();
queue.Enqueue("first");
queue.Enqueue("second");
var item = queue.Dequeue(); // FIFO

5. Stack<T>

var stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
var top = stack.Pop(); // LIFO, возвращает 2

Производительность

ОперацияListDictHashSetQueueStack
AddO(1)O(1)O(1)O(1)O(1)
RemoveO(n)O(1)O(1)O(1)O(1)
ContainsO(n)O(1)O(1)O(n)O(n)
AccessO(1)O(1)

Потокобезопасные коллекции

var bag = new ConcurrentBag<int>();
var dict = new ConcurrentDictionary<string, int>();
var queue = new ConcurrentQueue<string>();

Когда использовать

  • List — последовательность элементов, индексный доступ
  • Dictionary — быстрый поиск по ключу
  • HashSet — уникальные значения, проверка вхождения
  • Queue — обработка в порядке FIFO
  • Stack — LIFO операции, отмена действий
  • Concurrent* — многопоточные приложения

Коллекции — основа эффективной обработки данных в C#.

Для чего нужны коллекции? | PrepBro