gpt4 book ai didi

c# - 在不知道其类型的情况下获取字典键值对

转载 作者:太空狗 更新时间:2023-10-29 21:23:02 27 4
gpt4 key购买 nike

我有一个对象 instance为此

instance.GetType().GetGenericTypeDefinition() == typeof(Dictionary<,>)

是真的。我的问题是,如何在不知道其泛型类型的情况下从该对象中提取键值对?我想得到类似 KeyValuePair<object, object>[] 的东西.请注意,我也知道字典在运行时(但不是编译时)使用的泛型类型。我假设需要某种反射(reflection)?

跟进:是否有一种通用机制来转换 objectSomeClass<> (当然,如果我知道这是正确的类型)并因此使用它,假设类的实现不受泛型参数类型的影响?

最佳答案

我会按照 Jeremy Todd 所说的去做,除了可能会短一点:

    foreach(var item in (dynamic)instance)
{
object key = item.Key;
object val = item.Value;
}

作为旁注(不确定是否有帮助),您可以获得这样的参数类型:

Type[] genericArguments = instance.GetType().GetGenericArguments();

关于c# - 在不知道其类型的情况下获取字典键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16503773/

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