Цикл FOR удаляет все строки, при проверки на схожесть строк

Нужно чтобы при проверке удалились те строки, которых нет в globalDataMySQL и есть в globalDataExcel, здесь получается так, что удаляются все строки из globalDataExcel. Понимаю, что это из-за того, что условие выполняется при любом неправильном значении и соответственно цикл не успевает проверить всю таблицу. Но как это дело исправить — I don't know.

                for (int i = 0; i < globalDataTableExcel.Rows.Count; ++i)
                {
                    if (globalDataTableExcel.Rows[i].RowState != DataRowState.Deleted)
                    {
                        for (int j = 0; j < globalDataTableMySQL.Rows.Count; ++j)
                        {
                            if(globalDataTableExcel.Rows[i][0].ToString() != globalDataTableMySQL.Rows[j][0].ToString())
                            {
                                globalDataTableExcel.Rows[i].Delete();
                                ++minusSlov;
                                break;
                            }
                            
                        }
                    }
                }

Ответы (1 шт):

Автор решения: CrazyElf

Внутренний цикл должен выглядеть так:

bool found = false;
for (int j = 0; j < globalDataTableMySQL.Rows.Count; ++j)
{
    if(globalDataTableExcel.Rows[i][0].ToString() == globalDataTableMySQL.Rows[j][0].ToString())
    {
        found = true;
        break;
    }   
}
if(!found)
{
    globalDataTableExcel.Rows[i].Delete();
    ++minusSlov;
}
→ Ссылка