我有一本词典。我已经使用循环在字典中添加元素,并通过代码随时间更改它们。如何将元素恢复为初始值? 我的代码:
//for adding to the dictionary
Dictionary<string, string> D = new Dictionary<string, string>();
for(i=0; i<DataSet1.Tables[0].Rows.Count; i++)
{
row = DataSet1.Tables[0].Rows[i];
id[i]=row["UserID"].ToString();
D.Add(id[i], "absent");
}
//for reassigning back to absent
for(int i =0; i<D.Count; i++) D[i.ToString()]="absent";
我的重新分配循环而不是重新分配似乎只是添加新元素。最初计算大约1000并且在重新分配循环之后它大约是3000 .. P.S。使用c# 请帮忙
答案 0 :(得分:2)
您可以枚举词典的键并设置条目值:
foreach(string key in D.Keys.ToArray())
D[key] = "absent";
也可以将字典的创建简化为(借助Linq to DataSet):
var D = DataSet1.Tables[0].AsEnumerable()
.ToDictionary(r => r.Field<string>("UserID"),
r => "absent");
答案 1 :(得分:1)
尝试一下:
foreach(var key in d.Keys.ToArray())
{
d[key] = "absent";
}
需要.ToArray()
,因为如果您尝试直接迭代foreach
,d.Keys
循环将在第二次迭代之前抛出错误。