Я хочу проверить, существует ли DataRow из одного DataTable в другом DataTable.C#: Проверка наличия datarow в другом datatable с динамическими столбцами
У меня есть две таблицы данных. Там будут некоторые DataRows, которые одинаковы и существуют в обоих. Это было бы так легко, если бы я знал, какие столбцы будут там каждый раз, но я этого не делаю. Используя что-то вдоль линий ...
datatable.Rows[i].Field <String> columnName);
не будет работать, так как это поле может быть целое число, строка или дата/время. Однако я знаю, что два файла имеют одинаковые имена столбцов.
Мой код в кусках, но это то, на что оно похоже. Сейчас я создаю список имен столбцов, но об этом.
for (var h = 0; h < origDbfFile.datatable.Columns.Count; h++) {
columnNames.Add(origDbfFile.datatable.Columns[h].ColumnName);
}
У меня есть кошмар петли, если кто-то может найти более чистое решение, было бы очень признательно!
for (int g = 0; g < origDbfFile.dataset.Tables[0].Rows.Count; g++)
{
for (int h = 0; i < modDbfFile.dataset.Tables[0].Columns.Count; h++)
{
foreach (String columnName in columnNames)
{
String rowValue = origDbfFile.dataset.Tables[0].Rows[g].Field<String>(Convert.ToString(columnName));
//test data
result += "Column name:  : " + columnName + "<br/>";
result += "Value " + rowValue + "<br/><br/>";
//if logic will go below
}
}
}
Ваш вложенный цикл (h) объявляет 'h', но проверяет его на' i'. – Jay