Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ILookup interface vs IDictionary

Tags:

c#

.net

How does the ILookup<key, value> interface differ from IDictionary<key, value>?

I don't understand what the ILookup interface is meant for.

like image 583
user256034 Avatar asked Mar 25 '11 18:03

user256034


2 Answers

ILookup entries can contain multiple items per key - each key is mapped to an IEnumerable<TElement>.

Also as hinted to in the comments an ILookup is immutable, while you can update values in an IDictionary (it exposes an Add() method and an indexer that allows getting and setting values).

In summary their use case is very different - you use a lookup when you need a 1:N map with values that are fixed and won't (and can't) change. A dictionary on the other hand offers a mutable 1:1 mapping of key value pairs, so it can be updated to add or remove values.

like image 193
BrokenGlass Avatar answered Sep 21 '22 06:09

BrokenGlass


It is much more simpler than IDictionary. It is used by Linq. It only has Contains, Item and Count. IDictionary has Add, Remove, etc.

like image 34
Daniel A. White Avatar answered Sep 23 '22 06:09

Daniel A. White