将单列linq查询转换为字符串数组的最有效方法是什么?
private string[] WordList()
{
DataContext db = new DataContext();
var list = from x in db.Words
orderby x.Word ascending
select new { x.Word };
// return string array here
}
注意 - x.Word是一个字符串
答案 0 :(得分:32)
我更喜欢lambda风格,你真的应该处理你的数据上下文。
private string[] WordList()
{
using (DataContext db = new DataContext())
{
return db.Words.Select( x => x.Word ).OrderBy( x => x ).ToArray();
}
}
答案 1 :(得分:7)
怎么样:
return list.ToArray();
这假设x.Word
实际上是一个字符串。
否则你可以尝试:
return list.Select(x => x.ToString()).ToArray();
答案 2 :(得分:4)
如果您使用Lambda语法键入它,则可以使用ToArray方法更轻松地执行此操作:
string[] list = db.Words.OrderBy(w=> w.Word).Select(w => w.Word).ToArray();
甚至更短:
return db.Words.OrderBy(w => w.Word).Select(w => w.Word).ToArray();