C# C#  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Средний  · 

Коллекции .NET

Предлагает выбрать и правильно применить коллекцию под конкретные операции. Проверяются List, Dictionary, HashSet, очередь, стек, упорядоченные и конкурентные структуры — вместе с изменением во время обхода, равенством ключей и ожидаемой сложностью.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В заданиях с кодом учитывайте указанную конструкцию и не додумывайте отсутствующие условия. После завершения откроются общий результат, тематические шкалы и разбор каждого ответа.
Вопрос 1 из 20
Какое значение Count останется после Add(3) и Remove(2)?
C#
var list = new List<int> { 1, 2 };
list.Add(3);
list.Remove(2);
Console.WriteLine(list.Count);
Вопрос 2 из 20
Почему dictionary.Add("a", 2) бросит исключение?
C#
var dictionary = new Dictionary<string, int>
{
    ["a"] = 1
};
dictionary.Add("a", 2);
Вопрос 3 из 20
Как читать значение по ключу, если отсутствие ключа нормально?
C#
if (prices.TryGetValue(code, out var price))
    Console.WriteLine(price);
Вопрос 4 из 20
Что происходит при вставке в начало List<T>?
Вопрос 5 из 20
Почему изменяемый объект плох как ключ Dictionary?
C#
var key = new MutableKey { Code = "A" };
dict[key] = 1;
key.Code = "B"; // хеш мог измениться
Вопрос 6 из 20
Какой Count получится?
C#
var set = new HashSet<int> { 1, 2, 2, 1 };
Console.WriteLine(set.Count);
Вопрос 7 из 20
Как сделать строки уникальными без учёта регистра?
Вопрос 8 из 20
Что делает IntersectWith?
Вопрос 9 из 20
Можно ли полагаться на порядок foreach по HashSet<T>?
Вопрос 10 из 20
Что вернёт второй Add?
C#
var ids = new HashSet<int>();
Console.WriteLine(ids.Add(7));
Console.WriteLine(ids.Add(7));
Вопрос 11 из 20
Что выведет очередь?
C#
var q = new Queue<string>();
q.Enqueue("A");
q.Enqueue("B");
Console.WriteLine(q.Dequeue());
Вопрос 12 из 20
Что выведет стек?
C#
var s = new Stack<string>();
s.Push("A");
s.Push("B");
Console.WriteLine(s.Pop());
Вопрос 13 из 20
Какая структура естественна для Undo?
Вопрос 14 из 20
Как обработать пустую очередь без исключения?
Вопрос 15 из 20
Почему обычная Queue<T> не подходит для конкурентных производителей и потребителей без защиты?
C#
// Несколько потоков одновременно:
queue.Enqueue(item);
var next = queue.Dequeue();
Вопрос 16 из 20
Нужно часто проверять принадлежность идентификатора без порядка. Что выбрать?
Вопрос 17 из 20
Нужен доступ к пользователю по уникальному email. Что выбрать?
Вопрос 18 из 20
Набор конфигурации создаётся один раз и читается из многих потоков. Что уместно?
Вопрос 19 из 20
Когда массив лучше List<T>?
Вопрос 20 из 20
Что выбрать для асинхронного канала с ограничением буфера и ожиданием свободного места?
C#
var channel = Channel.CreateBounded<Job>(100);
await channel.Writer.WriteAsync(job, token);

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу