Я бы предложил использовать такой метод расширения:
public static class DataColumnCollectionExtensions
{
public static IEnumerable<DataColumn> AsEnumerable(this DataColumnCollection source)
{
return source.Cast<DataColumn>();
}
}
И, следовательно:
string[] columnNames = dataTable.Columns.AsEnumerable().Select(column => column.Name).ToArray();
Вы можете также реализовать еще один метод расширения для класса DataTable
, чтобы уменьшить код:
public static class DataTableExtensions
{
public static IEnumerable<DataColumn> GetColumns(this DataTable source)
{
return source.Columns.AsEnumerable();
}
}
И используйте его следующим образом:
string[] columnNames = dataTable.GetColumns().Select(column => column.Name).ToArray();