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

編集:removelistにあるフィールドをnullに設定する方法を知りたがっていました:

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