Как удалить DataRow из коллекции EnumerableRowCollection <DataRow>? - PullRequest
0 голосов
/ 22 декабря 2011

Я хочу удалить datarow из EnumerableRowCollection. Это возможно?. Я использую EnumerableRowCollection вместо универсальной переменной var, чтобы понять мой контекст.

EnumerableRowCollection<DataRow> results = from myRow in myDataTable.AsEnumerable()
                                           where results.Field("RowNo") == 1
                                           select results;

foreach(DataRow result in results)
{
    if(resultOk(result))
    delete result from results??
}

1 Ответ

3 голосов
/ 22 декабря 2011

Конечно, вы не можете удалить элементы из коллекции, которую вы повторяете, используя foreach. Это просто запрещено и приведет к исключению во время выполнения.

Возможно, вы просто захотите переместить эту логику в linq запрос:

EnumerableRowCollection<DataRow> results = from myRow in myDataTable.AsEnumerable()
where myRow.Field("RowNo") == 1 && !resultOk(myRow)
select myRow; // note that you're returning myRow, not results, like in your code
// you need to pay attention to code samples you're providing to avoid misunderstanding

Это вернет вам список с элементами, которые вам действительно нужны, без необходимости удалять эти элементы в цикле foreach.

...