Jestem zaangażowany w proces uczenia C# i idzie dobrze jak dotąd. Ja jednak właśnie uderzyłem w moje pierwsze "co mówisz?" za chwilę.DataTable, Jak warunkowo usunąć wiersze
DataTable oferuje losowy dostęp do wiersza kolekcji Rows, nie tylko poprzez typowe zachowanie kolekcji, ale także poprzez DataTable.Select. Jednak nie wydaje się być w stanie powiązać tę zdolność z DataRow.Delete. Do tej pory wydaje mi się, że muszę to zrobić, aby warunkowo usunąć jeden lub więcej wierszy z tabeli.
int max = someDataTable.Rows.Count - 1;
for(int i = max; i >= 0; --i)
{
if((int)someDataTable.Rows[i].ItemArray[0] == someValue)
{
someDataTable.Rows[i].BeginEdit();
someDataTable.Rows[i].Delete();
}
else
break;
}
someDataTable.AcceptChanges();
Ale nie jestem zadowolony z tego kodu. Nie jestem przekonany. Muszę czegoś przegapić. Czy naprawdę muszę sekwencyjnie uderzać w kolekcję wierszy, jeśli muszę warunkowo usunąć jeden lub więcej wierszy?
(nie przeszkadza odwrócony o. Ja usuwając z końcem DataTable. Więc to jest ok)
Ach! Nie zdarzyło mi się, że Select() zwróciłby odwołanie do wierszy z danymi. Wiedziałem, że czegoś brakuje. Wielkie dzięki! –
Zbyt dobre rozwiązanie, to również rozwiązało mój problem z datatable.select zmieniając zamówienie. – Signcodeindie
Doskonałe rozwiązanie Matthew – Ravia