2013-07-02 55 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)); 

或者你甚至可以避開從數據庫加載其他列:

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

這聽起來像你想:

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

你不」不需要通過媒體列表 - 事實上它不是更有效。使用此查詢,只有名稱將從數據庫中獲取。

+0

我可以糾正一個小錯誤(Jon的粉絲:) :),你需要將它轉換成一個數組,因爲string.Join需要一個字符串數組。 – bazz

+0

@bazz,實際上有一個[重載](http://msdn.microsoft.com/en-us/library/dd992421.aspx),它接受'IEnumerable'。 – Andrei

+0

@bazz:這取決於您使用的.NET版本。超載列表在.NET 4中顯着擴展。 –