2012-04-21 48 views
0

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

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

我已经尝试DataTable.Merge()foreach等...但我不能让我的预期的结果。

回答

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:

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

三江源的快速的帮助,告诉我更多的东西,如果我不删除列,但在要删除的各个列中将值设置为NULL。 – 2012-04-21 13:01:29

+1

@Syed:编辑我的答案。 – 2012-04-21 13:43:37