转换字典<int,list <string =“”>&gt;到IReadOnlyDictionary <int,ienumerable <string =“”>&gt;

时间:2017-01-10 16:35:14

标签: c# linq dictionary

我需要创建一个类:

  • 在内部操纵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>>

0 个答案:

没有答案