.Net中ReadOnlyDictionary和Lookup之间的区别

Joh*_*tos 0 .net c# lookup immutability readonly-collection

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

话虽这么说,但我知道将ReadOnlyDictionaries引入.Net 有很多工作,我有点困惑,每一个都比另一个更有用,具体是什么让它们与众不同.我看过网上,但似乎找不到任何解释这种差异的文章.

例如,我看到了这个问题,并认为查找将是一个更理想的解决方案,但我很困惑为什么它不会.

任何人都可以指出我正确的方向/解释哪里将使用另一个.

谢谢!!

J. *_*len 5

查找是一种简单的分组集合方式,您可以在其中为给定密钥设置一个 多个值.词典给你一个对于给定的键值,并且只有一个值.根据您的情况,拥有一个可以获得一个值的Dictionary ,或者您可能想要一个可以为您提供值集合的Lookup 最有意义.

没有查找,如果你想要某个键的值的集合,你会被困在一些丑陋的东西

Dictionary<int, IEnumerable<String>>
Run Code Online (Sandbox Code Playgroud)

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

  • @JohnBus​​tos答案是试图说的是`ILookup <TKey,TValue>`只是一种更友好的方式来创建`IReadOnlyDictionary <TKey,IEnumerable <TValue >>` (3认同)