1

重要编辑:不要在这种情况下使用字典。它使用 Object.GetHashCode() 不适合用作字典键。不过,我仍然从中学到了一些东西。

我有以下声明

private static IDictionary<IDictionary<string,string>, IEnumerable<Fishtank>> _cache;

和下面的代码来尝试初始化它

if (_cache == null) 
  _cache = new Dictionary<Dictionary<string,string>, LinkedList<Fishtank>>(); 

我遇到的问题是初始化会产生编译时错误。

无法将类型“System.Collections.Generic.Dictionary,System.Collections.Generic.LinkedList>”隐式转换为“System.Collections.Generic.IDictionary,System.Collections.Generic.IEnumerable>”。存在显式转换(您是否缺少演员表?)

我知道 Dictionary 和 LinkedList 分别实现了 IDictionary 和 IEnumerable,所以我在这里有点茫然。

4

1 回答 1

3

你可以做如下

if (_cache == null) 
    _cache = new Dictionary<IDictionary<string, string>, IEnumerable<Fishtank>>();
于 2013-08-23T02:54:26.243 回答