1

このタイプのクラス ColumnInfo の IEnumerable があります

namespace MyCompany
{
    public class ColumnInfo
    {
        public int Id { get; set; }        
        public string Description { get; set; }
        public int DisplayOrder { get; set; }
        public string ColumnName { get; set; }       
    }
}

このクラスには、文字列の列名を表示する ColumnName プロパティがあります。

いくつかの列を含む DataTable が既に設定されています。

プロパティ ColumnName を持つ IEnumerable にないデータ テーブルから列を削除する必要があります。データテーブルには、ColumnName プロパティにリストした列のみが必要です。

4

2 に答える 2

2

次の linq クエリを使用できます。

var columnsToRemove = table.Columns.Cast<DataColumn>()
    .Where(col => !columnInfos.Any(ci => ci.ColumnName == col.ColumnName))
    .ToList();

foreach(DataColumn col in columnsToRemove)
    table.Columns.Remove(col);
于 2013-10-11T14:50:42.080 に答える