我正在尝试从Collection中删除元素但最终出现错误
收藏被修改;枚举操作可能无法执行。
我想要实现的目标是什么?
检查报告集合中的学生列表计数。
如果count = = 1 为Student属性检查null或为空
如果全部都是从报告集合中删除学生..
这是我的代码
public void Create(StudentReport report)
{
ICollection<StudentReportDetails> student= report.Students;
if (student.Count == 1)
{
foreach (StudentReportDetails Studetails in student)
{
if (String.IsNullOrEmpty(Studetails.StudentNumber)&& String.IsNullOrEmpty(Studetails.Description) && String.IsNullOrEmpty(Studetails.Summary))
{
report.Students.Remove(Studetails);
}
}
}
}
答案 0 :(得分:2)
是。您无法修改集合。 Foreach循环使集合成为只读。
答案 1 :(得分:1)
如果您要修改它,请将foreach
更改为for
循环:
for (int i = 0; i < student.Count; i++)
{
if (String.IsNullOrEmpty(Studetails.StudentNumber)&& String.IsNullOrEmpty(Studetails.Description) && String.IsNullOrEmpty(Studetails.Summary))
{
report.Students.Remove(Studetails);
}
}