В чем разница между LINQ ToDictionary и ToLookup



в чем разница между LINQ ToDictionary и ToLookup? Они, кажется, делают то же самое.

568   2  

2 ответов:

словарь-это карта 1:1 (каждый ключ сопоставляется с одним значением), а словарь является изменяемым (редактируемым) после факта.

поиск-это карта 1:many (multi-map; каждый ключ сопоставляется с IEnumerable<> значений с этим ключом), и нет мутировать на ILookup<,> интерфейс.

в качестве примечания вы можете запросить поиск (через индексатор) по ключу, который не существует, и вы получите пустую последовательность. Сделать то же самое со словарем и вы получите исключение.

Итак: сколько записей разделяют каждый ключ?

чрезмерно упрощенный способ смотреть на это состоит в том, что Lookup<TKey,TValue> и примерно сопоставим до Dictionary<TKey,IEnumerable<TValue>>

ToDictionary составляет пока метода tolookup is похож на IGrouping, но перечисление остается в памяти.

Comments

    Ничего не найдено.