我正在使用Linq从Datatable中选择数据。选择将是一列,要求函数应返回string[]
。我没有得到如何将结果转换为string[]
。
请指导,下面是我的代码:
public string[] GetCompletionList(string prefixText)
{
if (HttpContext.Current.Cache["Dir"] == null)
{
return null;
}
DataTable dt = (DataTable)HttpContext.Current.Cache["Dir"];
var details = from addresses in dt.AsEnumerable()
where SqlMethods.Like(prefixText, prefixText + "%") || SqlMethods.Like(prefixText, "%" + prefixText + "%")
select addresses["Details"];
return details.tol;
}
答案 0 :(得分:4)
如果details
中的每个项目都是字符串,只需使用IEnumerable<T>.ToArray()
:
return details.ToArray();
如果您需要先转换它(在我的示例中我使用ToString()
),您可以使用Select
将每个项目投影到字符串:
return details.Select(x => x.ToString()).ToArray();
答案 1 :(得分:0)
我不确定查询中生成的对象是否存在ToArray
,但如果确实如此,您可以尝试:
return details.ToArray();
如果不起作用,请先尝试创建一个列表:
return details.ToList().ToArray();