Выбор ответа Senior Коллекции и LINQ обновлено
GroupBy против ToLookup
Вопрос
Чем ToLookup отличается от GroupBy в LINQ to Objects?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: ToLookup сразу строит индекс по ключу, а GroupBy отложен. ToLookup материализует данные сразу в структуру «ключ → набор значений» с быстрым доступом по индексатору; по отсутствующему ключу он возвращает пустую последовательность.
Варианты ответа
GroupByсохраняет порядок групп, аToLookupсортирует ключиToLookupбросает исключение при повторах ключей, какToDictionary- Разницы нет: это синонимы,
ToLookupпросто вызываетGroupBy ToLookupсразу строит индекс по ключу, аGroupByотложенправильный ответ
Разбор
ToLookup материализует данные сразу в структуру «ключ → набор значений» с быстрым доступом по индексатору; по отсутствующему ключу он возвращает пустую последовательность. GroupBy отложен и пересчитывается при каждом перечислении. Порядок групп у обоих по первому появлению ключа, сортировки нет. Повторяющиеся ключи это суть обоих методов, исключение бросает только ToDictionary.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.