C# 当参数不同但可转换时,如何强制转换泛型类型?

C# 当参数不同但可转换时,如何强制转换泛型类型?,c#,generics,C#,Generics,我有一个方法参数,它接受IDictionary,但我想给它传递一个IDictionary(Newtonsoft.Json) 转换在运行时失败,但由于JToken提供了隐式和显式转换方法,我认为可能有一种转换方法 如何才能做到这一点 class MyClass { void Method(IDictionary<string,string> data) {} } ... IDictionary<string,JToken> record = ...; MyClas

我有一个方法参数,它接受
IDictionary
,但我想给它传递一个
IDictionary
(Newtonsoft.Json)

转换在运行时失败,但由于
JToken
提供了隐式和显式转换方法,我认为可能有一种转换方法

如何才能做到这一点

class MyClass
{
    void Method(IDictionary<string,string> data) {}
}

...
IDictionary<string,JToken> record = ...;
MyClass cls = new MyClass();
cls.Method((IDictionary<string,string>)record);
...
class-MyClass
{
void方法(IDictionary数据){}
}
...
索引记录=。。。;
MyClass cls=新的MyClass();
cls.方法((索引)记录);
...

你不能从一本词典转换到另一本词典,几乎唯一的方法就是创建一本新词典:

IDictionary<string,JToken> record = ...;
MyClass cls = new MyClass();
cls.Method(record.ToDictionary(k => k.Key,v => (string)v.Value));
IDictionary记录=。。。;
MyClass cls=新的MyClass();
方法(record.ToDictionary(k=>k.Key,v=>(string)v.Value));

你不能从一本词典转换到另一本词典,几乎唯一的方法就是创建一本新词典:

IDictionary<string,JToken> record = ...;
MyClass cls = new MyClass();
cls.Method(record.ToDictionary(k => k.Key,v => (string)v.Value));
IDictionary记录=。。。;
MyClass cls=新的MyClass();
方法(record.ToDictionary(k=>k.Key,v=>(string)v.Value));