gpt4 book ai didi

c# - 检查对象是字典还是列表

转载 作者:可可西里 更新时间:2023-11-01 07:49:39 24 4
gpt4 key购买 nike

在单声道中使用 .NET 2,我使用了一个基本的 JSON 库,它返回嵌套字符串、对象字典和列表。

我正在编写一个映射器来将其映射到我已有的 jsonData 类,我需要能够确定 object 的基础类型是字典还是列表。下面是我用来执行此测试的方法,但想知道是否有更简洁的方法?

private static bool IsDictionary(object o) {
try {
Dictionary<string, object> dict = (Dictionary<string, object>)o;
return true;
} catch {
return false;
}
}

private static bool IsList(object o) {
try {
List<object> list = (List<object>)o;
return true;
} catch {
return false;
}
}

我使用的库是 litJsonJsonMapper 类在 iOS 上基本上不起作用,因此我要编写自己的映射器。

最佳答案

使用 is 关键字和反射。

public bool IsList(object o)
{
if(o == null) return false;
return o is IList &&
o.GetType().IsGenericType &&
o.GetType().GetGenericTypeDefinition().IsAssignableFrom(typeof(List<>));
}

public bool IsDictionary(object o)
{
if(o == null) return false;
return o is IDictionary &&
o.GetType().IsGenericType &&
o.GetType().GetGenericTypeDefinition().IsAssignableFrom(typeof(Dictionary<,>));
}

关于c# - 检查对象是字典还是列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17190204/

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