2013-04-24 9 views
7

मैं एक समारोह में इस संग्रह वापस जाने के लिए कोशिश कर रहा हूँ:परिवर्तित EnumerableRowCollection <string> सूची में <string>

List<string> codes = (from q in Data.AsEnumerable() select q.Field<string>("START")); 
return codes; 

यह फेंकता त्रुटि:

Cannot implicitly convert type 'System.Data.EnumerableRowCollection<string>' to 'System.Collections.Generic.List<string>' 

इस तरह के एक संग्रह वापस जाने के लिए सबसे अच्छा तरीका क्या है?

+1

मेरा प्रश्न क्यों कम करें? – Meidi

उत्तर

16

EnumerableRowCollection<TRow> के बाद से लागू करता है IEnumerable<T> तुम सिर्फ अंत में एक ToList() जोड़ सकते हैं:

using System.Linq; 

List<string> bankCodes = (from q in QueueData.AsEnumerable() select q.Field<string>("START")).ToList(); 

या वैकल्पिक रूप से

List<string> bankCodes = QueueData.AsEnumerable() 
    .Select(r => r.Field<string>("START")) 
    .ToList(); 
+1

जोड़ें। टॉलीस्ट() इस अपवाद को फेंकता है: – Meidi

+0

'सिस्टम.डाटा.इन्यूमेरेबलरोवॉलिशन ' में 'टूलीस्ट' की परिभाषा नहीं है और 'सिस्टम' डेटा के पहले तर्क को स्वीकार करने के लिए 'टोस्टिस्ट' कोई एक्सटेंशन विधि नहीं है। डेटा.एनेमेरेबलरोवॉलिशन ' मिलें (क्या आप एक प्रयोग निर्देश या असेंबली संदर्भ खो रहे हैं?) – Meidi

+7

@Meidi - आपको अपनी फ़ाइल के शीर्ष पर 'System.Linq;' निर्देश का उपयोग करने की आवश्यकता है। – Lee

5

आप .ToList() उपयोग करने के लिए सूची में यह गुप्त के लिए इतना कुछ इस तरह की कोशिश की जरूरत है।

List<string> bankCodes = (from q in QueueData.AsEnumerable() select q.Field<string>("START")).ToList(); 
संबंधित मुद्दे