Quelle est la différence entre LINQ ToDictionary et ToLookup? Ils semblent faire la même chose.
Réponses
Trop de publicités?Un dictionnaire est une correspondance 1:1 (chaque clé est associée à une valeur unique), et d'un dictionnaire est mutable (modifiable) après le fait.
Une recherche est un 1:nombre de carte (multi-carte; chaque clé est associé à un IEnumerable<>
des valeurs avec la clé), et il n'y a pas de muter sur l' ILookup<,>
interface.
Comme une note de côté, vous pouvez demander une recherche (par l'intermédiaire de l'indexeur) sur une clé qui n'existe pas, et vous aurez une séquence vide. Faire de même avec un dictionnaire et vous aurez une exception.
Donc: combien de dossiers de la part de chaque clé?
Trop simplifiée de la façon de voir les choses, c'est qu'un Lookup<TKey,TValue>
est à peu près comparable à un Dictionary<TKey,IEnumerable<TValue>>
Que diriez-vous d'une comparaison sur tolookup vs todictionary.
http://blog.donnfelker.com/2010/02/12/linq-tolookup-vs-todictionary/