2013-07-02 13 views
7

を結合するラムダリストは私のテーブルで、ここでは、文字列

myTable 
------------- 
id  name  age 
------------------------- 
1  NameOne  10 
2  NameTwo  11 
3  NameThree  12 
4  NameFour  13 
5  NameFive  14 

私は私のテーブルが好き取得し、

var _myList = DBContext.myTables.ToList(); 

私は、文字列が

"NameOne,NameTwo,NameThree,NameFour,NameFive" 

私はどのように行うことができますが好き取得したいですこれは短い方法で?

答えて

24

使用String.Join

string names = String.Join(",", _myList.Select(x => x.Name)); 

それともあなたもDBから他の列をロードする避けることができます:「

string names = string.Join(",", DBContext.myTable.Select(x => x.Name)); 

あなたがドン:

string names = String.Join(",", DBContext.myTables.Select(x => x.Name)); 
0
var _myList = DBContext.myTables.ToList(); 
var names = _myList.Select(x => x.name); 
var formattedStrings = string.Join(", ", names); 
8

それはあなたが望むように聞こえますインターメディアを通す必要がある実際には効率的ではありません。このクエリでは、のみがデータベースからフェッチされます。

+0

小さい間違い(Jonの大きなファン)を訂正してください:) string.Joinが文字列配列を予期しているため、これをArrayに変換する必要があります。 – bazz

+0

@bazz、実際には、[IEnumerable]を受け入れる[overload](http://msdn.microsoft.com/en-us/library/dd992421.aspx)があります。 – Andrei

+0

@bazz:使用している.NETのバージョンによって異なります。オーバーロードリストは.NET 4で大幅に拡張されました。 –

関連する問題