2013-07-02 17 views
7

Ecco il mio tavolo,lista lambda di combinare stringa

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

posso recuperare il mio tavolo piace,

var _myList = DBContext.myTables.ToList(); 

voglio ottenere stringa piace

"NameOne,NameTwo,NameThree,NameFour,NameFive" 

Come posso fare questo in modo più breve?

risposta

24

Usa String.Join

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

Oppure si può anche evitare di caricare altre colonne da DB:

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

Sembra che si desidera:

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

È don' Ho bisogno di passare attraverso un intermediario te list - ed infatti è più efficiente non farlo. Con questa query, solo, i nomi verranno recuperati dal database.

+0

Posso osare correggere un piccolo errore (grande fan di Jon :) :), è necessario convertirlo in una matrice, perché string.Join si aspetta un array di stringhe. – bazz

+0

@bazz, in realtà c'è un [overload] (http://msdn.microsoft.com/en-us/library/dd992421.aspx) che accetta 'IEnumerable'. – Andrei

+0

@bazz: dipende dalla versione di .NET che stai utilizzando. La lista di sovraccarico è stata notevolmente ampliata in .NET 4. –

Problemi correlati