C# 遍历数据表并删除列表中的列

C# 遍历数据表并删除列表中的列,c#,asp.net,visual-studio-2010,datatable,C#,Asp.net,Visual Studio 2010,Datatable,我有一个允许列的列表。我有一个数据集DT1,它列出了所有列。现在我要做的是只从DT1获取允许的列 List<String> = FirstName,LastName,Age,EmailAddress DT1 contains = FirstName,LastName,Age,EmailAddress,Sex,PhoneNumber,Address List=FirstName、LastName、Age、EmailAddress DT1包含=名字、姓氏、年龄、电子邮件地址、性别、电话

我有一个允许列的
列表
。我有一个数据集DT1,它列出了所有列。现在我要做的是只从DT1获取允许的列

List<String> = FirstName,LastName,Age,EmailAddress
DT1 contains = FirstName,LastName,Age,EmailAddress,Sex,PhoneNumber,Address
List=FirstName、LastName、Age、EmailAddress
DT1包含=名字、姓氏、年龄、电子邮件地址、性别、电话号码、地址

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

假设您的列表是一个包含列名的
列表:

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

假设您的列表是包含列名的
列表

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

感谢您的快速帮助,请再告诉我一件事,如果我不删除列,但将要删除的各个列中的值设置为NULL,该怎么办。感谢您的快速帮助,请再告诉我一件事,如果我不删除列,但将要删除的各个列中的值设置为NULL,该怎么办。