如何将Linq结果转换为string []?

时间:2010-12-16 10:42:43

标签: c# linq

我正在使用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;

 }

2 个答案:

答案 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();