0

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

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

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

4

1 回答 1

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);
}

编辑:您想知道如何将删除列表中的字段设置为 null:

foreach(DataRow row in DT1.Rows) 
{
    foreach(DataColumn col in toBeRemoved)
    {
        row[col] = DBNull.Value;
    }
}
于 2012-04-21T12:41:26.190 回答