Когда вы пишете select new {key= 1000,name= order.Field<string>("name") }
, вы создаете новый анонимный тип, который не имеет ничего общего с DataRow
.
Следовательно, вы не можете присвоить его EnumerableRowCollection<DataRow>
.
* 1006.* Чтобы исправить ошибку компилятора, измените
EnumerableRowCollection<DataRow>
на
var
.
Однако это не решит основную проблему.
LINQ нельзя использовать для изменения данных.
Вам необходимо использовать обычный цикл foreach
и установить значения key
, например:
var affectedRows = from order in _table.AsEnumerable()
where order.Field<Int32>("key") > 2 && order.Field<Int32>("key") < 4
select row;
foreach(DataRow row in affectedRows) {
row["key"] = 1000;
}
Этот код изменит исходные DataRow
с в исходном _table
.
Если вы не хотите изменять оригинал _table
, вы можете скопировать его, позвонив по номеру DataTable.Copy()
.