如何使用c# . net删除更多的数据表列

本文关键字:数据表 删除 何使用 net | 更新日期: 2023-09-27 18:03:17

我有一个数据表可能有更多的列。但是"NetAmount", "TotalAmount", "Destination"是数据表列,它们总是出现在数据表中。

这里我想从数据表中删除三个列,如"NetAmount","TotalAmount"answers"Destination",并取数据表中其他列的值。

我尝试了下面的方法,并得到了所需的输出。

  dtAttribute.Columns.Remove("NetAmount"); //dtAttribute is the Main DataTable
  dtAttribute.Columns.Remove("TotalAmount");
  dtAttribute.Columns.Remove("Destination");
  DataTable dtItem = dtAttribute.Copy();      

但是它看起来很幼稚和冗长。还有别的办法吗?

如何使用c# . net删除更多的数据表列

您的代码没有任何问题(除了您在之后复制了表,删除了列——您确定这是您想要的吗?)

如果您想要更抽象的东西(而不是一次又一次地重复同一行),您可以考虑删除循环中的列:

var dtItem = dtAttribute.Copy();    // if you want to keep a copy of the original table
var toRemove = new string[] {"NetAmount", "TotalAmount", "Destination"};
foreach (col in toRemove)
    dtItem.Columns.Remove(col);

与其删除这些列,不如一开始就不把它们放在DataTable中?

首先选择要删除的列,然后删除它们

List<string> toRemove = dt.Columns.Cast<DataColumn>().Where(c => c.ColumnName.StartsWith("ExtraColumn")).Select(c => c.ColumnName).ToList();
foreach (var col in toRemove) dt.Columns.Remove(col);