Linq使用Index列获取数据表的列名

时间:2013-12-27 16:21:19

标签: c# linq

我试图通过使用Linq的Column索引找到数据表的Column名称之一。 示例:

  int colindex = 2;

  Datatable: PersonInfo
  ID Name Address City State Country Zip 
  1  xx    11-23    LA  CA    USA    9123

  PersonInfo.AsEnumerable().Select(x => x.field<int>(Colindex).ColumnName);

  returns Address

1 个答案:

答案 0 :(得分:7)

为什么要尝试使用LINQ来做到这一点?这很简单:

var columnName = PersonInfo.Columns[colindex].ColumnName;

您的代码不起作用,因为Field<T>扩展方法会返回T,因此Field<int>会返回int,并且无法从{{1}获取列名价值。

如果你真的必须使用LINQ,你应该查询int属性,而不是行:

DataTable.Columns