如何使用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();
但是它看起来很幼稚和冗长。还有别的办法吗?
您的代码没有任何问题(除了您在之后复制了表,删除了列——您确定这是您想要的吗?)
如果您想要更抽象的东西(而不是一次又一次地重复同一行),您可以考虑删除循环中的列:
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);