我如何 return 并使用方法中的 IDictionary 值

how do I return and use an IDictionary value from method

我无法找出正确的语法。我有这样的方法:

public IDictionary<string, object> FindTransactions()
{
    Dictionary<string, object> returnItems = new Dictionary<string, object>();

    //do stuff

    return returnItems;
}

我想将其 return 值分配给我的使用代码中的新变量。这些不太正确:

IDictionary returnItems = FindTransactions();
//Cannot implicitly convert type 'System.Collections.Generic.IDictionary<string, object>' to 'System.Collections.IDictionary'. An explicit conversion exists (are you missing a cast?)

Dictionary<string, object> returnItems2 = FindTransactions();
//Cannot implicitly convert type 'System.Collections.Generic.IDictionary<string, object>' to 'System.Collections.Generic.Dictionary<string, object>'. An explicit conversion exists (are you missing a cast?)

...这是如何正确完成的?

你在这两种情况下都很接近:

IDictionary<string, object> returnItems2 = FindTransactions();

泛型 IDictionary<K,V> 接口不扩展非泛型 IDictionary 所以你不能转换成那个,你也不能隐式地从一个派生较少的类型(比如接口)到更派生的类型(如实现),因为不能保证实际类型是 Dictionary<K, V>