Как удалить столбец datatable в С#

У меня есть datatable с 12 столбцами. Теперь мне нужно удалить все столбцы, кроме как в позиции "0"

i можно удалить отдельно, указав имя столбца. но я не хочу этого делать, поскольку это не лучший способ кодирования.

есть ли что-нибудь другое, что я могу сделать

спасибо

Ответ 1

Пройдите назад через столбцы и удалите их. Вы должны вернуться назад, чтобы исключить исключение из диапазона.

// index should include zero
for( int index=table.Columns.Count-1; index>=0; index-- )
{
   table.Columns.RemoveAt( index );
}

Любители VB.Net:

'index should include zero
For index As Integer = table.Columns.Count - 1 To 0 Step -1
    table.Columns.RemoveAt(index)
Next

Ответ 2

while(myDataTable.Columns.Count > 1)
{
    myDataTable.Columns.RemoveAt(myDataTable.Columns.Count - 1);
}

Ответ 3

Код, который вы можете удалить по столбцам из объекта таблицы данных. То, что делает мой код, это цикл через объекты таблицы данных, а затем удалять столбцы один за другим.

    String strcolname = "";
    int i=0;
    //Get Data for the reader object
    using (reader = cmd.ExecuteReader())
    {  
    // Load the Data table object
    dataTable.Load(reader);

    //Loop thorough the DataTable object
    for (i=dataTable.Columns.Count-1;i>=0;i--)
    {

    /* 
    To be more precise , specify the column name you dont want to get    deleted, 
    (you can add multilple column names here)*/

    strcolname = dataTable.Columns[i].ColumnName.ToString();

     if (strcolname != "ABCD")
     {
      dataTable.Columns.RemoveAt(i);
     }
    }    
   }