我们可以很容易地做到这一点:
List<Value> list;
IReadOnlyList<IValue> List => list;
但是我们怎样才能对 IReadOnlyDictionary 做同样的事情呢?
Dictionary<Key, Value> dict;
IReadOnlyDictionary<Key, IValue> Dict => dic; //impossible
最佳答案
你不能,但是以分配和重新散列为代价你可以投影它:
IReadOnlyDictionary<string, IValue> Dict
=> dict.ToDictionary(x => x.Key, x => (IValue)x.Value);
尽管您可能需要重新考虑您的问题。
关于c# - 将 Dictionary<Key, Value> 转换为 IReadOnlyDictionary<Key, IValue>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56964292/