将linq查询转换为字符串数组 – C#

将单列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是一个字符串

我更喜欢lambda风格,你真的应该处理你的数据上下文。

 private string[] WordList() { using (DataContext db = new DataContext()) { return db.Words.Select( x => x.Word ).OrderBy( x => x ).ToArray(); } } 

怎么样:

 return list.ToArray(); 

这假设x.Word实际上是一个字符串。

否则你可以尝试:

 return list.Select(x => x.ToString()).ToArray(); 

如果您使用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();