What is the difference between LINQ ToDictionary and ToLookup? They seem to do the same thing.
What is the difference between LINQ ToDictionary and ToLookup? They seem to do the
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
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 theILookup<,>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 aDictionary<TKey,IEnumerable<TValue>>