从集合中删除项目时出错

时间:2015-08-10 08:08:30

标签: c#

我正在尝试从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);
            }

        }
    }
}

2 个答案:

答案 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);
        }

    }