.net 在c中检查动态对象是单值还是数组#
检查动态对象是数组还是字符串/int/etc的最佳方法是什么 这是我的解决方案,很有效,但我不确定try/cach解决方案是否是最好的方法 我还尝试了使用.net 在c中检查动态对象是单值还是数组#,.net,.net,检查动态对象是数组还是字符串/int/etc的最佳方法是什么 这是我的解决方案,很有效,但我不确定try/cach解决方案是否是最好的方法 我还尝试了使用.GetType()方法获取类型,但没有成功 列表应包含简单的数据类型,可转换为字符串 private Dictionary<string, List<object>> GetValues(List<dynamic> dynamicList) { Dictionary<string, List&
.GetType()
方法获取类型,但没有成功
列表应包含简单的数据类型,可转换为字符串
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;
}
private Dictionary GetValues(List dynamicList)
{
词典;
returnDictionary=newdictionary();
foreach(dynamicList中的动态项)
{
var name=item.name;
动态值=项目值;
尝试
{
字符串sValue=(字符串)值;
添加(item.Name,新列表{sValue});
}
抓住
{
添加(item.Name,新列表((IEnumerable)值));
}
}
返回字典;
}
尝试使用“as”关键字
string sValue = value as string;
if(sValue != null) {
//do stuff
}
尝试使用“as”关键字
string sValue = value as string;
if(sValue != null) {
//do stuff
}
使用is关键字
if(value is string)
{
string StrVal = value as string;
}
使用is关键字
if(value is string)
{
string StrVal = value as string;
}
“但那没用”并不能告诉我们你看到了什么GetType()
将为您提供该类型,但我们不知道您试图执行什么操作或发生了什么。如果您想将值强制转换为字符串,那么您应该只填充一个列表
…您应该在C#中使用反射…检查(a是否是某个类型),然后将其强制转换为该类型列表
是反序列化Json的一部分。.GetType()
方法返回Name=“JValue”FullName=“Newtonsoft.Json.Linq.JValue”
我找到了一个解决方案来检查它是否是字符串<代码>如果(value.Type==Newtonsoft.Json.Linq.JTokenType.String)
可能重复的“但那没有起作用”不会告诉我们您看到了什么GetType()
将为您提供该类型,但我们不知道您试图执行什么操作或发生了什么。如果您想将值强制转换为字符串,那么您应该只填充一个列表
…您应该在C#中使用反射…检查(a是否是某个类型),然后将其强制转换为该类型列表
是反序列化Json的一部分。.GetType()
方法返回Name=“JValue”FullName=“Newtonsoft.Json.Linq.JValue”
我找到了一个解决方案来检查它是否是字符串if(value.Type==Newtonsoft.Json.Linq.JTokenType.String)
此答案的可能重复项看起来正确,但要使其成为“高质量答案”,您应该解释is
运算符及其工作原理。此答案看起来正确,但要使其成为“高质量答案”,您应该解释is
运算符及其工作原理。