如何将字典<字符串,字符串>传递给字典<对象,对象>方法
本文关键字:字符串 对象 字典 方法 | 更新日期: 2023-09-27 18:32:59
如何将字典传递给接收字典的方法?
Dictionary<string,string> dic = new Dictionary<string,string>();
//Call
MyMethod(dic);
public void MyMethod(Dictionary<object, object> dObject){
.........
}
您不能按原样传递它,但可以传递副本:
var copy = dict.ToDictionary(p => (object)p.Key, p => (object)p.Value);
让您的 API 程序采用接口而不是类通常是一个好主意,如下所示:
public void MyMethod(IDictionary<object, object> dObject) // <== Notice the "I"
通过此小更改,您可以将其他类型的字典(例如SortedList<K,T>
)传递给 API。
如果要传递字典以实现只读目的,则可以使用 Linq:
MyMethod(dic.ToDictionary(x => (object)x.Key, x => (object)x.Value));
由于类型安全限制,您当前的 aproach 不起作用:
public void MyMethod(Dictionary<object, object> dObject){
dObject[1] = 2; // the problem is here, as the strings in your sample are expected
}