2 ответов:
словарь-это карта 1:1 (каждый ключ сопоставляется с одним значением), а словарь является изменяемым (редактируемым) после факта.
поиск-это карта 1:many (multi-map; каждый ключ сопоставляется с
IEnumerable<>значений с этим ключом), и нет мутировать наILookup<,>интерфейс.в качестве примечания вы можете запросить поиск (через индексатор) по ключу, который не существует, и вы получите пустую последовательность. Сделать то же самое со словарем и вы получите исключение.
Итак: сколько записей разделяют каждый ключ?
чрезмерно упрощенный способ смотреть на это состоит в том, что
Lookup<TKey,TValue>и примерно сопоставим доDictionary<TKey,IEnumerable<TValue>>
ToDictionary составляет
пока метода tolookup is похож на IGrouping, но перечисление остается в памяти.
Comments