我们很容易做到这一点:
List<Value> list;
IReadOnlyList<IValue> List => list;但是,我们如何才能对IReadOnlyDictionary做同样的事情呢?
Dictionary<Key, Value> dict;
IReadOnlyDictionary<Key, IValue> Dict => dic; //impossible发布于 2019-07-10 06:17:00
但是,您不能以分配和重新哈希的代价来预测它:
IReadOnlyDictionary<string, IValue> Dict
=> dict.ToDictionary(x => x.Key, x => (IValue)x.Value);尽管你可能需要重新思考你的问题。
发布于 2019-07-10 06:12:47
这是因为IReadOnlyList是协变的:
public interface IReadOnlyList<out T> {...}而IReadOnlyDictionary不是:
public interface IReadOnlyDictionary<TKey,TValue> {...}https://stackoverflow.com/questions/56964292
复制相似问题