我仍然在了解不变性以及何时使用这些对象,并开始在我的编码中加入更多Lookups,因为我知道它们是不可变的,因此通常更好用比客户可以改变的字典。
话虽如此,我知道在将ReadOnlyDictionaries引入.Net方面做了大量工作,我觉得有些困惑,哪一方比另一方更有用,哪些具体使它们与众不同。我已经在网上看了,但似乎找不到任何解释这种差异的文章。
例如,我看到this question并认为查找将是一个更理想的解决方案,但我不知道它为什么不会。
任何人都可以指出我正确的方向/解释哪里会用到另一个。
谢谢!
答案 0 :(得分:5)
查找是一种简单的分组集合方式,您可以为给定密钥设置一个或 更多值。字典为给定键提供一个值,仅为一个值。根据您的情况,最有意义的是有一个字典,您可以在其中找到一个值,或者您可能想要一个可以为您提供值集合的查找。
如果您想要某个键的值集合,如果没有查找,您将会遇到像丑陋的事情
Dictionary<int, IEnumerable<String>>
育。有关Lookups的更多信息,请参阅https://msdn.microsoft.com/en-us/library/bb460184%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396。