我有这段代码:
public string[] GetUsergroupRoles(string username)
{
var qry = from ug in _entities.Usergroups
from r in _entities.Roles
from u in _entities.Users
where u.Username == username
group r by
new
{
r.RoleID
};
return qry.ToArray();
}
我收到错误“... Data.Models.Role> []'到'string []'。存在显式转换(你错过了演员吗?)”
什么需要让它返回一个字符串数组?
/ M
答案 0 :(得分:3)
好吧,你正在创建一系列组(我不知道为什么你使用匿名类型这样做 - 你应该只能使用group r by r.RoleID
)。
您对每个小组的期望是什么字符串?
答案 1 :(得分:1)
您正在尝试将SomeType []强制转换为字符串[],并且编译器抱怨它不知道如何,因为您尚未定义强制转换。
尝试循环遍历数组并将SomeType的特定字符串属性(或等效的ToString())收集到数组中。
答案 2 :(得分:1)
尝试迭代qry并将每个项目的ToString方法的结果累积到string []变量中,然后返回它。像这样:
// your code here
string[] ret = new string[qry.Length];
int i = 0;
foreach (var item in qry) {
ret[i] = qry.ToString()
i++;
}
return ret;