我做錯了什麼,因爲之後執行myData的循環更新的靜止包含空白IDS對象。爲什麼不在以下foreach循環中更新myData對象,以及如何修復它?爲什麼我對象被
我認爲這可能是因爲我沒有被引用傳遞對象,但增加了一個ref關鍵字並且還移動到主方法和我仍然示出所述對象不被更新。
其他信息
在foreach循環,用戶正在更新對象,但myData的列表並不反映我看到更新被應用到用戶對象。
**解決方案** 我並沒有創建一個List,而是一個Enumerable,每當我通過一個foreach列表中的myData時,它都拉動了json。添加一個ToList()修復了我的問題。
public class MyData
{
public string ID { get; set; }
public Dictionary<string, string> Properties { get; set; }
}
int index = 0;
// Does not allow me to up, creates an IEnumerable
//IEnumerable<MyData> myData = JObject.Parse(json)["Users"]
// .Select(x => new MyData()
// {
// ID = x["id"].ToString(),
// Properties = x.OfType<JProperty>()
// .ToDictionary(y => y.Name, y => y.Value.ToString())
// });
//Works allows me to update the resulting list.
IEnumerable<MyData> myData = JObject.Parse(json)["Users"]
.Select(x => new MyData()
{
ID = x["id"].ToString(),
Properties = x.OfType<JProperty>()
.ToDictionary(y => y.Name, y => y.Value.ToString())
}).ToList();
foreach (var user in myData) // Also tried myData.ToList()
{
if (string.IsNullOrEmpty(user.ID))
{
user.ID = index.ToString();
user.Properties["id"] = index.ToString();
}
index++;
}
您是否嘗試過使用'如果(string.IsNullOrEmpty(user.ID))'呢?你確定ID不是空的(而不是空的)? –
mydata在哪裏更新? –
這最後'user.ID'應該可能是'index' –