我知道我们可以通过一个简单的循环很容易地做到这一点,但是我想说服这个LINQ/谓词?
string[] columnNames = dt.Columns.?
or
string[] columnNames = from DataColumn dc in dt.Columns select dc.name;
我知道我们可以通过一个简单的循环很容易地做到这一点,但是我想说服这个LINQ/谓词?
string[] columnNames = dt.Columns.?
or
string[] columnNames = from DataColumn dc in dt.Columns select dc.name;
try 此操作(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
是必需的,因为列的类型是DataColumnCollection,它是IEnumerable
,而不是IEnumerable<DataColumn>
.其他部分应该是显而易见的.