Карточка Junior Коллекции и LINQ спрашивают часто обновлено

Какую коллекцию выбрать

Вопрос

Какие коллекции .NET когда использовать?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

- List<T: по умолчанию, доступ по индексу O(1), вставка в середину O(n). - Dictionary<K,V: поиск по ключу в среднем O(1). - HashSet<T: уникальность и Contains за O(1). - Queue<T / Stack<T: FIFO и LIFO. - SortedDictionary / SortedSet: упорядоченность, O(log n). - PriorityQueue<T,P (.NET 6): куча по приоритету. -…

Ответ

  • List<T>: по умолчанию, доступ по индексу O(1), вставка в середину O(n).
  • Dictionary<K,V>: поиск по ключу в среднем O(1).
  • HashSet<T>: уникальность и Contains за O(1).
  • Queue<T> / Stack<T>: FIFO и LIFO.
  • SortedDictionary / SortedSet: упорядоченность, O(log n).
  • PriorityQueue<T,P> (.NET 6): куча по приоритету.
  • LinkedList<T>: вставка и удаление по узлу O(1), редко оправдан.

Разбор

Для потоков есть ConcurrentDictionary, ConcurrentQueue, Channel<T>, для неизменяемых данных ImmutableArray, FrozenDictionary (.NET 8).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.