Что я могу видеть из вашего кода, так это то, что вам нравится удалять все строки, где поле «Имя» пусто. Это правильно?
Результат, который вы получите, не является вашим новым датабельным. Вместо этого вы получите IEnumerable<DataRow>
, содержащий все строки, которые вы хотели бы видеть.
Вместо этого вы можете отменить результаты вашего запроса linq, содержащие все, что вам не нравится, а затем просто удалить все эти данные из таблицы данных.
var rowsToDelete = dt.AsEnumerable()
.Where(row => String.IsNullOrEmpty(row.Field<string>("name"))
.ToList();
foreach(var row in rowsToDelete)
{
dataTable.Rows.Remove(row);
}