到 IReadOnlyDictionary?,c#,dictionary,interface,casting"/>

首页 > 解决方案 > 演员词典到 IReadOnlyDictionary?

问题描述

我们可以很容易地做到这一点:

List<Value> list;
IReadOnlyList<IValue> List => list;

但是我们怎样才能对 IReadOnlyDictionary 做同样的事情呢?

Dictionary<Key, Value> dict;
IReadOnlyDictionary<Key, IValue> Dict => dic; //impossible

标签: c#dictionaryinterfacecasting

解决方案


这是因为IReadOnlyList是协变的:

public interface IReadOnlyList<out T> {...}

IReadOnlyDictionary不是:

public interface IReadOnlyDictionary<TKey,TValue> {...}

推荐阅读