首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不枚举的情况下将泛型字典转换为非泛型字典?

如何在不枚举的情况下将泛型字典转换为非泛型字典?
EN

Stack Overflow用户
提问于 2008-09-29 08:07:28
回答 1查看 4.9K关注 0票数 9

我想要将泛型IDictionary的实例转换为非泛型IDictionary。我可以在不创建新的IDictionary实例的情况下这样做吗?是否有框架支持此任务?

我尝试在实现非遗传IDictionary的类中包装泛型IDictionary,但是我发现我还必须以某种方式将泛型ICollection转换为非泛型ICollection,所以我选择了Mark Gravell解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2008-09-29 08:16:30

这完全取决于您正在使用的具体实现。

例如,Dictionary既实现了通用的IDictionary,也实现了非通用的IDictionary -因此,如果您有一个Dictionary,您可以将其作为任何一个使用,而不会出现问题:

代码语言:javascript
复制
        Dictionary<int, string> lookup = new Dictionary<int,string>();
        IDictionary<int,string> typed = lookup;
        IDictionary untyped = lookup;

然而,这并不一定适用于所有的IDictionary实现,因为IDictionary:IDictionary并不是真的。如果您深入了解某些泛型代码,可以测试当前的字典:

代码语言:javascript
复制
        IDictionary<int,string> typed  = ...
        IDictionary untyped = typed as IDictionary;
        if(untyped == null) {/* create by enumeration */}
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/147875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档