C# Linq使用列索引获取数据表的列名
我试图通过使用Linq的列索引来查找datatable的一个列名。 例如:C# Linq使用列索引获取数据表的列名,c#,linq,C#,Linq,我试图通过使用Linq的列索引来查找datatable的一个列名。 例如: 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
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
int-colindex=2;
数据表:PersonInfo
ID姓名地址城市州国家邮政编码
1 xx 11-23美国加利福尼亚州洛杉矶9123
PersonInfo.AsEnumerable().Select(x=>x.field(Colindex.ColumnName);
返回地址
为什么要使用LINQ来实现这一点?这很容易:
var columnName = PersonInfo.Columns[colindex].ColumnName;
您的代码不起作用,因为Field
扩展方法返回T
,所以Field
返回int
,并且无法从该int
值获取列名
如果确实必须使用LINQ,则应查询DataTable.Columns
属性,而不是行:
var columnName = PersonInfo.Columns.Cast<DataColumn>().ElementAt(colindex).ColumnName;
var columnName=PersonInfo.Columns.Cast().ElementAt(colindex.columnName);
感谢linq语句的有效性,我正在尝试创建一个linq语句来检查一些东西,因为应用程序是模仿excel的