我有一个针对 DataRow[] 的 Linq 查询,返回每行的元素。大致如下:
var query = from row in rows select row["Id"];
我想将这个转换为int[],但是下面的代码会生成一个错误:
int[] myIntArray = query.ToArray();
错误信息如下:
Cannot implicitly convert type object[] to int[]
有没有什么聪明的技巧可以让这个工作起来?
我有一个针对 DataRow[] 的 Linq 查询,返回每行的元素。大致如下:
var query = from row in rows select row["Id"];
int[] myIntArray = query.ToArray();
Cannot implicitly convert type object[] to int[]
DataRow
的索引器(row[...]
)返回的是object
,而不是int
。
因此,你隐式类型的查询结果是一组object
。
你需要明确选择int
类型,像这样:
int[] numbers = rows.Select(r => r.Field<int>("Id")).ToArray();
select (int)row["Id"]
)