我知道我们可以通过一个简单的循环轻松地做到这一点,但我想说服这个 LINQ/Predicate?
string[] columnNames = dt.Columns.?
or
string[] columnNames = from DataColumn dc in dt.Columns select dc.name;
最佳答案
试试这个(LINQ 方法语法):
string[] columnNames = dt.Columns.Cast<DataColumn>()
.Select(x => x.ColumnName)
.ToArray();
或者在 LINQ 查询语法中:
string[] columnNames = (from dc in dt.Columns.Cast<DataColumn>()
select dc.ColumnName).ToArray();
Cast
是必需的,因为 Columns 是 DataColumnCollection 类型,它是 IEnumerable
, 不是 IEnumerable<DataColumn>
.其他部分应该是显而易见的。
关于c# - 使用 (LINQ/Predicate) 将 DataTable 的所有列名放入字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5026285/