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