2011-01-15 13 views
55
IEnumerable<Book> _Book_IE 
List<Book> _Book_List 

मैं आदेश IEnumerable प्रारूप में _Book_List कन्वर्ट करने के लिए में कैसे करूँ में सूची से कन्वर्ट?IEnumerable प्रारूप

+40

आपका नामकरण सम्मेलन अनोखा अनूठा है। –

+3

कम से कम उसके पास एक सम्मेलन है, आह? – Femaref

उत्तर

99

आपको इसे बदलने की आवश्यकता नहीं है। List<T>IEnumerable<T> इंटरफ़ेस लागू करता है इसलिए यह पहले से ही एक गणना योग्य है।

इसका मतलब है आप बिल्कुल ठीक हो सकता है निम्नलिखित:

public IEnumerable<Book> GetBooks() 
{ 
    List<Book> books = FetchEmFromSomewhere();  
    return books; 
} 

के साथ-साथ:

public void ProcessBooks(IEnumerable<Book> books) 
{ 
    // do something with those books 
} 

जो लागू किया जा सकता है:

List<Book> books = FetchEmFromSomewhere();  
ProcessBooks(books); 
3
IEnumerable<Book> _Book_IE; 
List<Book> _Book_List; 

तो यह है सामान्य संस्करण:

_Book_IE = _Book_List; 

आप गैर सामान्य से एक में बदलने के लिए चाहते हैं:

IEnumerable ie = (IEnumerable)_Book_List; 
+5

आपको यहां कलाकारों की आवश्यकता नहीं है। –

+2

यदि आप गैर-जेनेरिक इंटरफ़ेस से विशिष्ट विधियां चाहते हैं, तो आप कुछ करते हैं, क्योंकि उनमें से कुछ स्पष्ट रूप से कार्यान्वित किए गए हैं, या क्या मैं यहां गलत ट्रैक पर हूं? – Femaref

11

जहाँ तक मुझे पता के रूप में List<T>IEnumerable<T> लागू करता है। इसका मतलब है कि आपको कुछ भी बदलने या डालने की ज़रूरत नहीं है।

+1

यह निर्भर करता है। यदि आप 'IENumerable >' को 'inumerable > पर सेट करने का प्रयास करते हैं, तो यह एक कंपाइलर त्रुटि देता है क्योंकि दूसरे को पहले से प्राप्त नहीं होता है। – Emaborsa

12

एक एकल लाइनर का प्रयोग क्यों नहीं ...

IEnumerable<Book> _Book_IE= _Book_List as IEnumerable<Book>; 
23

आप विधानसभा System.Core और System.Linq नाम स्थान में विस्तार विधि AsEnumerable उपयोग कर सकते हैं:

List<Book> list = new List<Book>(); 
return list.AsEnumerable(); 

हो जाएगा ताकि, के रूप में कहा this MSDN link पर संकलन-समय में सूची के प्रकार को बदलें। यह आपको केवल आपके संग्रह की गणना करने के लिए लाभ प्रदान करेगा (इसके लिए एमएसडीएन उदाहरण देखें)।

+0

सरल दिखता है लेकिन रूपांतरित करने का सबसे आसान तरीका बनाता है। धन्यवाद –

1

आप अपने List पर IEnumerable विकल्पों का उपयोग करने

using System.Linq; 

की जरूरत है।