Карточка 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 ошибок.