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

आप डॉन ' एक intermedia के माध्यम से जाने की जरूरत नहीं है ते सूची - और वास्तव में यह अधिक कुशल नहीं है। इस क्वेरी के साथ, केवल नाम डेटाबेस से लाए जाएंगे।

+0

मई मैं एक छोटी गलती (जॉन के बड़े प्रशंसक) को सही करने की हिम्मत करता हूं :), आपको इसे एक ऐरे में परिवर्तित करने की आवश्यकता है, क्योंकि string.Join एक स्ट्रिंग सरणी की अपेक्षा करता है। – bazz

+0

@bazz, वास्तव में एक [अधिभार] (http://msdn.microsoft.com/en-us/library/dd992421.aspx) है जो 'IENumerable' स्वीकार करता है। – Andrei

+0

@bazz: यह आपके द्वारा उपयोग किए जा रहे .NET के संस्करण पर निर्भर करता है। ओवरलोड सूची को .NET 4. –

संबंधित मुद्दे