我有一个DataSet,我从一个函数调用传回来的DataTable。它有15-20列,但我只想要10列数据。
有没有办法删除那些我不想要的列,将DataTable复制到只有我想要的列定义的另一列,或者只是更好地迭代集合并只使用我需要的列。 / p>
我需要将值写入固定长度的数据文件。
答案 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);
}