关于asp.net:从C#中的DataTable中删除列

关于asp.net:从C#中的DataTable中删除列

Remove columns from DataTable in C#

我有一个DataSet,它从函数调用中传回了我的数据表。 它有15-20列,但是我只需要10列数据。

有没有一种方法可以删除那些我不想要的列,将DataTable复制到另一个仅定义了我想要的列的方法,或者只是更好地迭代集合并只使用我需要的列即可。

我需要将这些值写到固定长度的数据文件中。


除了限制选择的列以减少带宽和内存外:

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


要删除所需列之后的所有列,下面的代码应该起作用。 它将在索引10处删除(请记住列基于0),直到列数等于或小于10。

1
2
3
4
5
6
7
DataTable dt;
int desiredSize = 10;

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

该问题已经被标记为已回答。但是我想这个问题指出,该人想要从DataTable中删除多个列。

因此,当我遇到相同的问题时,这就是我所做的。

1
2
3
4
5
6
7
string[] ColumnsToBeDeleted = {"col1","col2","col3","col4" };

foreach (string ColName in ColumnsToBeDeleted)
{
    if (dt.Columns.Contains(ColName))
        dt.Columns.Remove(ColName);
}

推荐阅读