我知道我们可以通过一个简单的循环轻松地做到这一点,但是我想说服这个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>。其他部分应该很明显。

09-06 12:01