À la fois un Dictionary<Key, List<Value>>
et Lookup<Key, Value>
logiquement peut contenir des données organisées de manière similaire, les deux sont du même ordre d'efficacité. La principale différence est un Lookup
est immuable: il n'a pas d' Add()
méthodes et pas de constructeur public (et que Jon dit que vous pouvez interroger inexistante de clé sans exception et ont la clé dans le cadre du groupement).
Qu'est-ce que vous utilisez, cela dépend vraiment de la façon dont vous souhaitez les utiliser. Si vous utilisez une carte de clé pour plusieurs valeurs qui sont constamment modifiées, puis un Dictionary<Key, List<Value>>
est probablement mieux depuis qu'il est mutable.
Si, toutefois, vous avez une séquence de données et vous voulez juste une vue en lecture seule des données organisée par la clé, puis une recherche est très facile à construire et qui vous donne un instantané en lecture seule.