检查动态对象是数组还是字符串/ int / etc的最佳方法是什么?
这是我的解决方案,但是我不确定try / cach解决方案是否是最佳方式。
我也尝试过使用Type
方法获取.GetType()
,但这没效果。
List<object>
应该包含简单的数据类型,可以转换为字符串。
private Dictionary<string, List<object>> GetValues(List<dynamic> dynamicList)
{
Dictionary<string, List<object>> returnDictionary;
returnDictionary= new Dictionary<string, List<object>>();
foreach (dynamic item in dynamicList)
{
var name = item.Name;
dynamic value = item.Value;
try
{
string sValue = (string)value;
returnDictionary.Add(item.Name, new List<object> { sValue });
}
catch
{
returnDictionary.Add(item.Name, new List<object>((IEnumerable<object>)value));
}
}
return returnDictionary;
}
答案 0 :(得分:0)
尝试使用'as'关键字。
string sValue = value as string;
if(sValue != null) {
//do stuff
}
答案 1 :(得分:0)
使用is关键字
if(value is string)
{
string StrVal = value as string;
}