我有以下代码:
List<String> rows =
allDetails.Tables[3].AsEnumerable().OrderBy(dr => dr.Field<string> ("JobTitle")).ToList();
错误是:
Cannot implicitly convert type 'System.Collections.Generic.List<System.Data.DataRow>' to 'System.Collections.Generic.List<string>'
答案 0 :(得分:6)
DataTable.AsEnumerable()
会返回IEnumerable<DataRow>
,您可以将其用于与您类似的LINQ查询。但是你不能在其上使用ToList
并期望它是List<String>
。因此,您必须选择字符串字段:
List<String> orderedJobTitles = allDetails.Tables[3].AsEnumerable()
.OrderBy(dr => dr.Field<string>("JobTitle"))
.Select(dr => dr.Field<string>("JobTitle"))
.ToList();
如果您不需要DataRow
,也可以在订购之前选择字段:
List<String> orderedJobTitles = allDetails.Tables[3].AsEnumerable()
.Select(dr => dr.Field<string>("JobTitle"))
.OrderBy(jobTitle => jobTitle)
.ToList();