Удалить столбцы из DataTable в С#

У меня есть DataSet, из которого я получаю DataTable, из которого я возвращаюсь из вызова функции. Он имеет 15-20 столбцов, однако мне нужно только 10 столбцов данных.

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

Мне нужно записать значения в файл с фиксированной длиной.

Ответ 1

Помимо ограничения столбцов, выбранных для уменьшения пропускной способности и памяти:

DataTable t;
t.Columns.Remove("columnName");
t.Columns.RemoveAt(columnIndex);

Ответ 2

Чтобы удалить все столбцы после того, как вы захотите, эта небольшая функция должна работать. Он будет удаляться с индексом 10 (помните, что столбцы основаны на 0), до тех пор, пока количество столбцов не будет равно 10 или меньше.

        DataTable dt;
        int desiredSize = 10;

        while (dt.Columns.Count > desiredSize)
        {
            dt.Columns.RemoveAt(desiredSize);
        }

Ответ 3

На вопрос уже дан ответ, и это правильно. Поскольку в вопросе говорится, что этот человек хочет удалить несколько вопросов, я хотел бы добавить в него обновление, когда столкнулся с той же проблемой.

string[] ColumnsToBeDeleted = { "col1", "col2", "col3", "col4" };
foreach (string ColName in ColumnsToBeDeleted)
{
    if (dt.Columns.Contains(ColName))
        dt.Columns.Remove(ColName);
}