What is the difference between LINQ ToDictionary and ToLookup Ask Question

What is the difference between LINQ ToDictionary and ToLookup Ask Question

What is the difference between LINQ ToDictionary and ToLookup? They seem to do the same thing.

ベストアンサー1

A dictionary is a 1:1 map (each key is mapped to a single value), and a dictionary is mutable (editable) after the fact.

A lookup is a 1:many map (multi-map; each key is mapped to an IEnumerable<> of the values with that key), and there is no mutate on the ILookup<,> interface.

As a side note, you can query a lookup (via the indexer) on a key that doesn't exist, and you'll get an empty sequence. Do the same with a dictionary and you'll get an exception.

So: how many records share each key?

An overly simplified way of looking at it is that a Lookup<TKey,TValue> is roughly comparable to a Dictionary<TKey,IEnumerable<TValue>>

おすすめ記事