MSDN解释了这样的Lookup:
一个
Lookup<TKey, TElement>酷似Dictionary<TKey, TValue>.不同之处在于 Dictionary <TKey,TValue>将键映射到单个值,而 Lookup <TKey,TElement>将键映射到值集合.
我没有发现这种解释特别有用.Lookup用于什么?
LINQ ToDictionary和ToLookup有什么区别?他们似乎做同样的事情.
我有一个Dictionary<string, List<string>>并希望将该成员公开为只读.我看到我可以将它作为一个返回IReadOnlyDictionary<string, List<string>>,但我无法弄清楚如何将它作为一个返回IReadOnlyDictionary<string, IReadOnlyList<string>>.
有没有办法做到这一点?在c ++中,我只是使用const,但C#没有.
请注意,IReadOnlyDictionary在这种情况下简单地使用a 没有帮助,因为我希望只读取值.看来唯一的方法是构建另一个IReadOnlyDictionary,并向它们添加IReadOnlyList.
另一个我不会兴奋的选择是创建实现接口IReadOnlyDictionary>的包装器,并让它保存原始实例的副本,但这似乎有点过分.