复制到新数据表时,linq 排除某些列

我正在尝试使用 OpenXML 和 LoadfromDataTable 创建一个 Excel 工作表。如果有更好的功能,我不会嫁给那个功能。我正在尝试排除数据表列,以便它们不会出现在 Excel 工作表中。例如,我有一个包含“ID”、“名称”和“地址”列的数据表。


   ID Name  Address

   1  Name1 So SO Street

   2  Name2 Do Do Street

我想要做的是创建一个只有列名称和地址并排除 ID 的新数据表。


我有一个 linq 查询,它获取我希望在新数据表中看到的列列表,如下所示:


var columns = dt1.Columns.Cast<DataColumn>().Where(c => c.ColumnName != "ID").ToList();

我试图弄清楚如何使用该列表来创建一个仅包含列表中那些列的新数据表。



慕妹3146593
浏览 165回答 2
2回答

慕的地8271018

从您的数据表中,您只能使用.Select选择几列var result = from a in new DataContext().DataColumn&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;where a.ColumnName != "ID"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;select new {a.NotForExcel, a.ExcelColumn1, a.ExcelColumn2 };var ExcelList = result.AsEnumerable()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Select(o => new DataColumn {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Column1 = o.ExcelColumn1,&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Column2 = o.ExcelColumn2&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }).ToList();
打开App,查看更多内容
随时随地看视频慕课网APP