我有一个针对DataRow []的Linq查询,它返回每行的元素。看起来有点像这样:
var query = from row in rows select row["Id"];
我想将其转换为int [],但以下代码会生成错误:
int[] myIntArray = query.ToArray();
错误是:
Cannot implicitly convert type object[] to int[]
是否有一些巧妙的技巧可以使这项工作?
答案 0 :(得分:8)
DataRow
索引器(row[...]
)返回object
,而不是int
。
因此,隐式类型查询是一组object
s。
您需要明确选择int
,如下所示:
int[] numbers = rows.Select(r => r.Field<int>("Id")).ToArray();
(或只是select (int)row["Id"]
)