2009-10-11 21 views
8

एक var प्रकार को सूची प्रकार में कैसे परिवर्तित/परिवर्तित करने के लिए?सी # - सूची <T> रूपांतरण

यह कोड स्निपेट मुझे त्रुटि दे रहा है:

List<Student> studentCollection = Student.Get(); 

var selected = from s in studentCollection 
          select s; 

List<Student> selectedCollection = (List<Student>)selected; 
foreach (Student s in selectedCollection) 
{ 
    s.Show(); 
} 
+2

'var' एक प्रकार नहीं है, यह वैरिएबल को जो भी अभिव्यक्ति दे रहा है, उसके लिए यह केवल प्लेसहोल्डर है। इस मामले में, क्वेरी अभिव्यक्ति 'IENumerable ' का मूल्यांकन करती है। – Joren

उत्तर

19

आप वस्तुओं क्वेरी के लिए Linq करते हैं, तो यह आपको प्रकार वापस आ जाएगी IEnumerable<Student>

var selected = from s in studentCollection 
          select s; 

List<Student> selectedCollection = selected.ToList(); 
:, आप एक List<T> IEnumerable<T> एक से बनाने के लिए ToList() विधि का उपयोग कर सकते हैं
+1

इस उत्तर में मेरे से बेहतर स्पष्टीकरण है। यह स्वीकार किया जाना चाहिए। –

+0

@CMS हाय मेरे दोस्त। मैंने अपने प्रोजेक्ट की स्माइलर समस्या में इस समाधान की कोशिश की। यह मेरे लिए काम नहीं किया। क्या आप इस प्रश्न के लिए मेरी मदद कर सकते हैं ?: http://stackoverflow.com/questions/32839483/how-can-change-list-type – CoderWho

3

आप ToList LINQ विस्तार विधि कॉल कर सकते हैं

List<Student> selectedCollection = selected.ToList<Student>(); 
foreach (Student s in selectedCollection) 
{ 
    s.Show(); 
} 
1

निम्नलिखित

List<Student> selectedCollection = selected.ToList(); 
8

var अपने नमूना कोड में वास्तव में IEnumerable<Student> के रूप में लिखा गया हो की कोशिश करो। यदि सब आप कर रहे हैं यह गणना कर रहा है, वहाँ यह एक सूची में बदलने की कोई जरूरत नहीं है:

var selected = from s in studentCollection select s; 

foreach (Student s in selected) 
{ 
    s.Show(); 
} 

आप एक सूची के रूप में यह चाहते हैं, तो Linq से ToList() विधि यह एक करने के लिए आप के लिए परिवर्तित कर देंगे ।

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