我有以下循环:
List<Reminders> reminds = new List<Reminders>();
//...
foreach (Reminders remind in reminds)
{
    //....
    reminds.Insert(id, new Reminders() { Title = remind.Title, Content = remind.Content, Checked = true });
}
但是,foreach循环中会发生错误。
foreach (Reminders remind in reminds)
如果我删除该reminds.Insert语句,该错误将不再发生。我正在尝试更新循环内的某些整体foreach。是什么导致错误?
将您的代码更改为:
List<Reminders> reminds = new List<Reminders>();
...
foreach (Reminders remind in reminds.ToList())
{
    ....
    reminds.Insert(id, new Reminders() { Title = remind.Title, Content = remind.Content, Checked = true });
}
请注意后面的.ToList()提醒。
说明:当集合在 foreach 中枚举时,您不能修改该集合。.ToList() 将创建另一个临时集合,该集合在 foreach 循环期间保持不变。
如果您想更新某些条目,那么您不应该添加新条目,只需将每个条目的属性设置Checked为:true
List<Reminders> reminds = new List<Reminders>();
...
foreach (Reminders remind in reminds)
{
    ....
    remind.Checked = true;
}
您不得修改正在迭代的列表。