我想将泛型IDictionary的实例转换为非泛型IDictionary.我可以在不创建IDictionary的新实例的情况下完成吗?是否有任何框架支持此任务?
我尝试在实现非遗传IDictionary的类中包装泛型IDictionary但是我发现我还必须以某种方式将通用ICollection转换为非泛型IDollection,因此我选择Mark Gravell解决方案.
Mar*_*ell 20
这一切都取决于您使用的具体实施.
例如,Dictionary <TKey,TValue>实现泛型IDictionary <TKey,TValue>和非泛型IDictionary - 所以如果你有一个Dictionary <TKey,TValue>,你可以使用它作为没有问题:
Dictionary<int, string> lookup = new Dictionary<int,string>();
IDictionary<int,string> typed = lookup;
IDictionary untyped = lookup;
Run Code Online (Sandbox Code Playgroud)
但是,这并不一定适用于所有IDictionary <TKey,TValue> imlpementations,因为IDictionary <TKey,TValue>:IDictionary不正确.如果您深入了解某些通用代码,可以测试当前字典:
IDictionary<int,string> typed = ...
IDictionary untyped = typed as IDictionary;
if(untyped == null) {/* create by enumeration */}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4408 次 |
最近记录: |