收集被修改; 即使对行计数应用验证,枚举操作也可能无法执行?

Rit*_*zel 2 c# collections

嗨,对不起,我是C#编程的初学者,虽然我知道在这个问题上已经创建了很多线程,但我似乎找不到适用于我的情况的线程,特别是因为我已经在其他表单上应用了这个它起作用了.

这个解决方案告诉我向后迭代它,但是我不知道如何/在哪里应用它.我正在错误的

foreach (DataRow dataRow_AvailableEmp in AvailableEmp_dataTable.Rows)
Run Code Online (Sandbox Code Playgroud)

这是代码的其余部分.

    if (WithTasks_Datatable.Rows.Count > 0)
    {
        foreach (DataRow dataRow_WithTask in WithTasks_Datatable.Rows)
        {
            Booked_Initial = dataRow_WithTask["Assigned"].ToString();
            if (this_Initial != Booked_Initial) //di booked
            {
                //CHECK IF IN DATATABLE                                
                if (AvailableEmp_dataTable.Rows.Count > 0)
                {
                    foreach (DataRow dataRow_AvailableEmp in AvailableEmp_dataTable.Rows)
                    {
                        Available_Initial = dataRow_AvailableEmp["EmpID"].ToString();

                        if (this_Initial != Available_Initial) //NOT IN DB
                        {
                            //ADD

                            AvailableEmp_dataTable.Rows.Add(this_EmpID, this_Initial, PositionName, TeamName, TeamLead);
                        }
                    }
                }
                else
                {
                    //ADD
                    AvailableEmp_dataTable.Rows.Add(this_EmpID, this_Initial, PositionName, TeamName, TeamLead);
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Mag*_*nus 8

一个简单的解决方案是将您正在迭代的行放入新列表中:

foreach (DataRow dataRow_AvailableEmp in AvailableEmp_dataTable.Rows.Cast<DataRow>().ToList())
Run Code Online (Sandbox Code Playgroud)