从C#中的DataTable中删除列

时间:2008-09-16 18:00:05

标签: c# asp.net

我有一个DataSet,我从一个函数调用传回来的DataTable。它有15-20列,但我只想要10列数据。

有没有办法删除那些我不想要的列,将DataTable复制到只有我想要的列定义的另一列,或者只是更好地迭代集合并只使用我需要的列。 / p>

我需要将值写入固定长度的数据文件。

3 个答案:

答案 0 :(得分:257)

除限制所选列以减少带宽和内存外:

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

答案 1 :(得分:21)

要删除所需列之后的所有列,这个小功能应该可行。它将在索引10处删除(记住列基于0),直到列数为10或更少。

        DataTable dt;
        int desiredSize = 10;

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

答案 2 :(得分:1)

该问题已经回答,并且是正确的。 但是,由于该问题表明该人想从DataTable中删除多列,因此我想在遇到相同问题时对其进行更新。

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