![](/img/trans.png)
[英]How to get the Updated Size of Structure?Size of the Structure not getting Updated When I add values to dynamic array Fields
[英]How get the array size using dynamic type
当我deserialize
我的JSON
时,我得到一个array
。
我可以使用foreach
访问array
。
dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
foreach (dynamic result in obj.Results.output1.value.Values)
{
}
但是我需要获得array
size
才能直接访问最后一个元素。
例如。
obj.Results.output1.value.Values[size-1]
我怎样才能做到这一点?
我需要例如"Values"
的"Y"
"Values"
{
"Results": {
"output1": {
"type": "table",
"value": {
"ColumnNames": [
"I01",
"I02",
"I03",
"O01",
"Scored Probabilities for Class \"0\"",
"Scored Probabilities for Class \"1\"",
"Scored Probabilities for Class \"2\"",
"Scored Labels"
],
"Values": [
[
"-0.96624",
"0.02918",
"-0.44237",
null,
"3.25456957391002E-12",
"0.000107838139228988",
"2.76633869589205E-07",
"Y"
]
]
}
}
}
}
如果我打印我得到这个JSON
Console.WriteLine(obj.Results.output1.value.Values);
[
[
"-0.96624",
"0.02918",
"-0.44237",
null,
"3.25456957391002E-12",
"0.000107838139228988",
"2.76633869589205E-07",
"Y"
]
]
伯爵打印1
Console.WriteLine(obj.Results.output1.value.Values.Count);
我几乎在那里,我需要在内部array
通过索引访问size
的最后一个元素。
我可以得到最后一个元素:
Console.WriteLine(obj.Results.output1.value.Values[0].Last);
并且数组大小为:
Console.WriteLine(obj.Results.output1.value.Values[0].Count);
JSON显示Results
是一个对象 ,而不是数组或列表。 您正在迭代的是属性。 这不是一个集合。 它将是一个JObject
,它暴露了.Last
。
你只需要写:
dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
var lastProperty = obj.Last;
可能有用于强制转换为JObject(或Dictionary<string, object>
以帮助解决未来的问题。
JObject obj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
访问Values
:
dynamic thing = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
var t = thing.Results.output1.value.Values.Count;
int[] foo = new int[10];
int n = foo.Length;
你可以使用( arrayname.lenth
).try来获得数组大小。
这是样本,我可以得到100的结果。
ICollection collection = new int[100];
dynamic obj = collection;
Console.WriteLine(obj.Length);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.