What is the difference between LINQ ToDictionary and ToLookup

前端 未结 2 1463
囚心锁ツ
囚心锁ツ 2020-12-02 12:00

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

2条回答
  •  时光取名叫无心
    2020-12-02 12:33

    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 is roughly comparable to a Dictionary>

提交回复
热议问题