単一列の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は文字列です
私はラムダスタイルを好みます、そしてあなたは本当にあなたのデータコンテキストを処分するべきです。
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();