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

时间:2009-09-04 11:54:56

标签: c# linq arrays string casting

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

3 个答案:

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