I\'m trying to wrap my head around which data structures are the most efficient and when / where to use which ones.
Now, it could be that I simply just don\'t unders
Two significant differences:
Lookup
is immutable. Yay :) (At least, I believe the concrete Lookup
class is immutable, and the ILookup
interface doesn't provide any mutating members. There could be other mutable implementations, of course.)KeyNotFoundException
. (Hence there's no TryGetValue
, AFAICR.)They're likely to be equivalent in efficiency - the lookup may well use a Dictionary
behind the scenes, for example. Choose between them based on your requirements. Personally I find that the lookup is usually a better fit than a Dictionary
, mostly due to the first two points above.
Note that as an implementation detail, the concrete implementation of IGrouping<,>
which is used for the values implements IList
, which means that it's efficient to use with Count()
, ElementAt()
etc.