我需要创建一个类:
Dictionary<int, List<string>>
IReadOnlyDictionary<int, IEnumerable<string>>
不幸的是,后者的要求无法改变。由于C#中协方差的(可理解的)限制,以下方法不起作用:
private Dictionary<int, List<string>> things;
public IReadOnlyDictionary<int, IEnumerable<string>> Things => things; // compile time error
该类需要改变字典和列表,因此我无法将私有字段更改为接口类型。
最简洁的方式是什么,最好使用Linq,将Dictionary<int, List<string>>
转换为IReadOnlyDictionary<int, IEnumerable<string>>
?