web-dev-qa-db-ja.com

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は文字列です

14
Andrew

私はラムダスタイルを好みます、そしてあなたは本当にあなたのデータコンテキストを処分するべきです。

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

どうですか:

return list.ToArray();

これは、x.Wordは実際には文字列です。

それ以外の場合は、次のことを試すことができます。

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

代わりに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();
4
Robban