116 votes

Quelle est la différence entre LINQ ToDictionary et ToLookup

Quelle est la différence entre LINQ ToDictionary et ToLookup? Ils semblent faire la même chose.

165voto

Marc Gravell Points 482669

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>>

1voto

Volure DarkAngel Points 5916

Que diriez-vous d'une comparaison sur tolookup vs todictionary.

http://blog.donnfelker.com/2010/02/12/linq-tolookup-vs-todictionary/

-4voto

Bonshington Points 2111

ToDictionary est <TKey, TValue> alors que ToLookup <TKey, T1, T2, T3, ...> est similaire à IGrouping mais l'énumération reste en mémoire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X