迭代数据表并删除列表中的列

时间:2012-04-21 12:36:04

标签: c# asp.net visual-studio-2010 datatable

我有List<String>允许列。我有一个数据集DT1,其中列出了所有列。现在我想要做的只是从DT1获取允许的列。

List<String> = FirstName,LastName,Age,EmailAddress
DT1 contains = FirstName,LastName,Age,EmailAddress,Sex,PhoneNumber,Address

我已经尝试了DataTable.Merge()foreach等等......但我无法获得预期的结果。

1 个答案:

答案 0 :(得分:3)

假设您的列表是包含列名的List<String>

var toBeRemoved = DT1.Columns.Cast<DataColumn>()
                 .Where(c => !allowed.Contains(c.ColumnName))
                 .ToList();
foreach(DataColumn col in toBeRemoved)
{
     DT1.Columns.Remove(col);
}

编辑:您想知道如何设置removelist中的字段null:

foreach(DataRow row in DT1.Rows) 
{
    foreach(DataColumn col in toBeRemoved)
    {
        row[col] = DBNull.Value;
    }
}