C#对Dictionary遍历赋值

导致错误的版本:
Dictionary datatable = new Dictionary();
datatable.Add(1, "hello 1");
datatable.Add(2, "hello 2");
var list = datatable.ToList();
 for (int i = 0; i < list.Count; i++)
{
       if (list[i].Value == "hello 2")
       {
              list[i].Value = "hello";//报错
           }
        }


正确的一种做法:
Dictionary datatable = new Dictionary();
datatable.Add(1, "hello1");
datatable.Add(2, "hello2");
int[] keys = datatable.Keys.ToArray();
for (int i = 0; i < keys.Length; i++)
{
    if (datatable[keys[i]] == "hello2")
    {
        datatable[keys[i]] = "hello";
    }
}

你可能感兴趣的:(C#)