繁体   English   中英

从 C# 中的 DataTable 中删除列

[英]Remove columns from DataTable in C#

我有一个数据集,我从 function 调用中传回了一个数据表。 它有 15-20 列,但我只想要 10 列数据。

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

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

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

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

要删除您想要的列之后的所有列,下面的代码应该可以工作。 它将在索引 10 处删除(记住列是基于 0 的),直到列计数为 10 或更少。

DataTable dt;
int desiredSize = 10;

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

该问题已被标记为已回答,但我想该问题表明该人想要从DataTable删除多个列。

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

string[] ColumnsToBeDeleted = { "col1", "col2", "col3", "col4" };

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

你怎么样 select 你想要的列是这样的:

Dim Subjects As String = "Math, English"
Dim SubjectData As DataTable = Table.AsDataView.ToTable(True, Subjects.Split(","))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM