【发布时间】:2016-12-29 10:01:00
【问题描述】:
我有一个Dictionary<string, List<string>> 并希望将该成员公开为只读。我看到我可以将其返回为 IReadOnlyDictionary<string, List<string>>,但我不知道如何将其返回为 IReadOnlyDictionary<string, IReadOnlyList<string>>。
有没有办法做到这一点?在 c++ 中我只使用 const,但 C# 没有。
请注意,在这种情况下,简单地使用 IReadOnlyDictionary 并没有帮助,因为我也希望这些值也是只读的。看来这样做的唯一方法是构建另一个 IReadOnlyDictionary,并将 IReadOnlyList 添加到它们。
另一个我不会感到兴奋的选择是创建实现接口 IReadOnlyDictionary> 的包装器,并让它保存原始实例的副本,但这似乎有点过头了。
【问题讨论】:
-
用查找代替呢? Dictionary 对象具有
ToLookup()扩展名。 msdn.microsoft.com/en-us/library/bb460184(v=vs.110).aspx
标签: c# collections covariance