如何将Linq array []转换为int []?

时间:2011-12-19 17:14:29

标签: linq

我有一个针对DataRow []的Linq查询,它返回每行的元素。看起来有点像这样:

var query = from row in rows select row["Id"];

我想将其转换为int [],但以下代码会生成错误:

int[] myIntArray = query.ToArray();

错误是:

Cannot implicitly convert type object[] to int[]

是否有一些巧妙的技巧可以使这项工作?

1 个答案:

答案 0 :(得分:8)

DataRow索引器(row[...])返回object,而不是int
因此,隐式类型查询是一组object s。

您需要明确选择int,如下所示:

int[] numbers = rows.Select(r => r.Field<int>("Id")).ToArray();

(或只是select (int)row["Id"]