datagrid Удалить строку не удалось, когда второй l oop? - PullRequest
0 голосов
/ 27 марта 2020

Правильный ли метод удаления? Я пытаюсь удалить эти ненужные строки базового столбца статуса. Но мне не удалось удалить строку, когда это произошло в секунду l oop.

Я пытаюсь добавить продолжить, но не работает, появляется сообщение об ошибке (" Сбор был изменено; операция перечисления может не выполняться. "). только я добавляю разрыв, и это работает для удаления строки (удалить только одну строку, я хочу продолжать цикл и удалить строку по обнаружению).

       if (queryResult.Rows != null) 
       {

      // now the query would display 10 rows
      DataTable dt_Details = new DataTable();
      dt_Details = queryResult.GetAsDataTable();

      foreach (DataRow dtRow in dt_Details.Rows)
      {
                    List<Array> newArrayList = new List<Array> ();
                    int A_TotalCount = 0;
                    int P_TotalCount = 0;
                    int C_TotalCount = 0;
                    if (dtRow["STATUS"].ToString() == "ACTIVE")
                    {
                        A_TotalCount++;
                    }
                    else if (dtRow["STATUS"].ToString() == "PROCESS")
                    {
                        P_TotalCount++;
                    }
                    else if (dtRow["STATUS"].ToString() == "COMPLETED")
                    {
                        C_TotalCount++;
                    }

                if ((P_TotalCount > 0 && A_TotalCount > 0 && C_TotalCount > 0) || (P_TotalCount > 0 && A_TotalCount > 0 && C_TotalCount == 0))
                {
                    foreach (DataRow row in dt_Details.Rows)
                    {
                        if (row["Status"].ToString() == "ACTIVE")
                            dt_Details.Rows.Remove(row);
                    }
                }
                else if ((P_TotalCount == 0 && A_TotalCount > 0 && C_TotalCount > 0))
                {
                    foreach (DataRow row in dt_Details.Rows)
                    {
                        if (row["WaferStatus"].ToString() == "COMPLETED")
                            **dt_Details.Rows.Remove(row);**
                    }
                }              
      }
    }
...