Dictionary を受け取るメソッドに Dictionary を渡すにはどうすればよいですか?
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));
タイプセーフな制限により、現在のアプローチは機能しません。
public void MyMethod(Dictionary<object, object> dObject){
dObject[1] = 2; // the problem is here, as the strings in your sample are expected
}