无法将类型'System.Linq.IQueryable <char []>'隐式转换为'string []'

时间:2016-04-17 04:58:19

标签: arrays linq c#-4.0

我试图将linq语句的结果转换为string []数组 如下所示

string[] g = from p in db.np_user_security where 
p.user_id == user_id select p.group_id.Distinct().ToArray();

但是给我一个错误,如下所示

  

无法将类型'System.Linq.IQueryable'隐式转换为   '字符串[]'

查询返回一个id列表,我需要将它保存在string或long数组中。我错过了什么?

1 个答案:

答案 0 :(得分:2)

通过执行p.group_id.Distinct().ToArray(),您将每个group_id拆分为不同字符数组。实际上,整个查询返回字符数组的IQueryable ,而不是ids。

我相信你想在调用Distinct().ToArray()之前先用parens包装查询:

string[] g = (from p in db.np_user_security 
              where p.user_id == user_id 
              select p.group_id
              ).Distinct().ToArray();