У меня есть DataTable, dt2, где я пытаюсь добавить новые строки (в блок else кода ниже). Я не могу просто добавить строки в цикле foreach (который я пробовал с помощью строки dt2.Rows.Add(newRow);
), потому что это затягивает счетчик циклов или что-то еще и вызывает следующую ошибку: «Коллекция была изменена, операция перечисления может не выполняться».Как добавить новые строки в DataTable только в определенных столбцах?
Поэтому я попытался сохранить новые значения строк в списке и затем добавить список в таблицу за пределами цикла. Это работает в том смысле, что оно компилируется, и оно что-то добавляет; к сожалению, он не принимает правильные значения или местоположения столбцов, но вместо этого показывает эту хрень: System.Collections.Generic.List`1 [System.Object]
Кроме того, информация должна отображаться в 3-м, 4-м и 5-м столбцах индекса под Target_Folder, Target_File и Target_Checksum, а не под Baseline_Folder.
Как сохранить и отобразить правильные значения под правильными столбцами?
foreach (DataRow drow in dt2.Rows)
{
if (drow["BASELINE_FILE"].ToString() == filename)
{
// do stuff
}
else
{
newRow = dt2.NewRow(); // newRow is a DataRow I declared up above
newRow[3] = directory;
newRow[4] = filename;
newRow[5] = checksumList[j];
newRow[6] = "Missing";
//dt2.Rows.Add(newRow);
// can't add here because that increases the number of rows and screws up the foreach loop
// therefore need to find way to store these values and add outside of loop
newFiles.Add(newRow); // newFiles is a List
}
}
dt2.Rows.Add(newFiles); // this doesn't work properly, doesn't take correct values
i m сталкивается с такой же проблемой, может ли любой орган дать решение благодаря –