.Net中ReadOnlyDictionary和Lookup之间的区别

时间:2016-08-22 19:30:00

标签: c# .net immutability lookup readonly-collection

我仍然在了解不变性以及何时使用这些对象,并开始在我的编码中加入更多Lookups,因为我知道它们是不可变的,因此通常更好用比客户可以改变的字典。

话虽如此,我知道在将ReadOnlyDictionaries引入.Net方面做了大量工作,我觉得有些困惑,哪一方比另一方更有用,哪些具体使它们与众不同。我已经在网上看了,但似乎找不到任何解释这种差异的文章。

例如,我看到this question并认为查找将是一个更理想的解决方案,但我不知道它为什么不会。

任何人都可以指出我正确的方向/解释哪里会用到另一个。

谢谢!

1 个答案:

答案 0 :(得分:5)

查找是一种简单的分组集合方式,您可以为给定密钥设置一个 更多值。字典为给定键提供一个值,仅为一个值。根据您的情况,最有意义的是有一个字典,您可以在其中找到一个值,或者您可能想要一个可以为您提供值集合的查找。

如果您想要某个键的值集合,如果没有查找,您将会遇到像丑陋的事情

Dictionary<int, IEnumerable<String>>

育。有关Lookups的更多信息,请参阅https://msdn.microsoft.com/en-us/library/bb460184%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396