导致错误的版本:
Dictionary<int, string> datatable = new Dictionary<int, string>();
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<int, string> datatable = new Dictionary<int, string>();
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";
}
}
Dictionary<int, string> datatable = new Dictionary<int, string>();
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<int, string> datatable = new Dictionary<int, string>();
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";
}
}