C# 列表未修改,但出现错误:集合已修改;枚举操作不能执行
我有以下变量C# 列表未修改,但出现错误:集合已修改;枚举操作不能执行,c#,c#-3.0,C#,C# 3.0,我有以下变量 public IEnumerable<SelectListItem> SelectedGroups { get; set; } Dictionary<string,string> grpsList; selectlist2是不同的列表。很可能是SelectedGroups指向一个涉及grpsList的linq表达式。 要避免此问题,请在分配到选择的组之前执行.ToList()。(您仍然可以将属性签名保留为IEnumerable) 使用添加的代码: from
public IEnumerable<SelectListItem> SelectedGroups { get; set; }
Dictionary<string,string> grpsList;
selectlist2是不同的列表。很可能是
SelectedGroups
指向一个涉及grpsList
的linq表达式。
要避免此问题,请在分配到选择的组之前执行.ToList()
。(您仍然可以将属性签名保留为IEnumerable
)
使用添加的代码:
from g in grpsList
select g).ToSelectList(g => g.Value, g => g.Key).ToList(); <-- here
grpsList中g的
选择g).ToSelectList(g=>g.Value,g=>g.Key).ToList() 最有可能的SelectedGroups
指向涉及grpsList
的linq表达式。
要避免此问题,请在分配到选择的组之前执行.ToList()
。(您仍然可以将属性签名保留为IEnumerable
)
使用添加的代码:
from g in grpsList
select g).ToSelectList(g => g.Value, g => g.Key).ToList(); <-- here
grpsList中g的
选择g).ToSelectList(g=>g.Value,g=>g.Key).ToList() 你可以试试看
foreach (var item in viemodel.SelectedGroups.ToList<SelectListItem>())
{
grpsList.Remove(item.Value);
}
foreach(viemodel.SelectedGroups.ToList()中的变量项)
{
grpsList.Remove(项值);
}
您可以尝试使用
foreach (var item in viemodel.SelectedGroups.ToList<SelectListItem>())
{
grpsList.Remove(item.Value);
}
foreach(viemodel.SelectedGroups.ToList()中的变量项)
{
grpsList.Remove(项值);
}
你能展示一下SelectedGroups
的实现吗?什么是selectlist1
和selectlist2
?这个问题在这里被问了很多次,对不起,我的错误。我知道它出现了好几次,正如问题中提到的,我没有看到引用,因为selectlist1有很多连接。这两个答案对我都有帮助。谢谢大家!你能展示一下SelectedGroups
的实现吗?什么是selectlist1
和selectlist2
?这个问题在这里被问了很多次,对不起,我的错误。我知道它出现了好几次,正如问题中提到的,我没有看到引用,因为selectlist1有很多连接。这两个答案对我都有帮助。谢谢大家!