gpt4 book ai didi

.net - 如何在不枚举的情况下将泛型词典转换为非泛型?

转载 作者:行者123 更新时间:2023-12-04 05:11:20 26 4
gpt4 key购买 nike

我想将通用IDictionary的实例转换为非通用IDictionary。我可以在不创建IDictionary新实例的情况下做到这一点吗?是否有任何框架支持该任务?

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

最佳答案

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

例如,Dictionary 同时实现了通用IDictionary 和非通用IDictionary-因此,如果您有Dictionary ,则可以将其用作其中之一而不会出现问题:

        Dictionary<int, string> lookup = new Dictionary<int,string>();
IDictionary<int,string> typed = lookup;
IDictionary untyped = lookup;

但是,这不一定适用于所有IDictionary 植入,因为IDictionary 并非正确:IDictionary。如果您深generic一些通用代码的知识,则可以测试当前词典:
        IDictionary<int,string> typed  = ...
IDictionary untyped = typed as IDictionary;
if(untyped == null) {/* create by enumeration */}

关于.net - 如何在不枚举的情况下将泛型词典转换为非泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/147875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com