【发布时间】:2019-04-24 08:21:46
【问题描述】:
我正在从数据集表创建一个动态 Jobject。该对象应具有一组 3 个键/值对。
{
"Lowest": "12.50",
"Highest": "",
"Type": "normal"
}
我正在遍历一个表来生成对象的数组 代码
dynamic product_Price = new JObject();
JArray product_Price_array = new JArray();
for (int i = 0; i <= ds.Tables[0].Rows.Count-1; i++)
{
product_Price.RemoveAll();
// this is loop through columns to generate the dynamic key value pair of
the object
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
product_Price.Add(ds.Tables[0].Columns[j].ColumnName,ds.Tables[0].Rows[i]
[j].ToString());
}
// now that i have object end of the loop i am adding to the array. but here its always duplicate of object not unique
product_Price_array.Add(product_Price);
}
当前结果:添加了重复的作业对象,并且它始终是 ds.Tables[0] 循环中的最后一个条目
[
{
"Lowest": "17.50",
"Highest": "",
"Type": "kid"
},
{
"Lowest": "17.50",
"Highest": "",
"Type": "kid"
}
]
我已经尝试过使用 list ,静态对象而不是动态对象。
预期结果
[
{
"Lowest": "12.50",
"Highest": "",
"Type": "normal"
},
{
"Lowest": "17.50",
"Highest": "",
"Type": "kid"
}
]
```
【问题讨论】:
-
因为你添加的是同一个对象
-
您可以在每个循环中为 product_Price 创建一个新的 JObject,而不是总是删除内容。只需在第一个 for 循环中获取变量即可。
-
为什么它有 +1 ......已经有无数类似的问题......回答这个问题只是为了“免费代表农业”
-
@Selvin,然后把它当作骗子关掉。