IEnumerable<Book> _Book_IE
List<Book> _Book_List
प्रारूप _Book_List
में बदलने के लिए मैं कैसे करूंगा IEnumerable
?
IEnumerable<Book> _Book_IE
List<Book> _Book_List
प्रारूप _Book_List
में बदलने के लिए मैं कैसे करूंगा IEnumerable
?
जवाबों:
आपको इसे परिवर्तित करने की आवश्यकता नहीं है। इंटरफ़ेस को List<T>
लागू करता IEnumerable<T>
है इसलिए यह पहले से ही एक enumerable है।
इसका मतलब है कि यह निम्नलिखित के लिए पूरी तरह से ठीक है:
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);
आप असेंबली सिस्टम में असेंबल करने के लिए विस्तार विधि का उपयोग कर सकते हैं। सिस्टम और सिस्टम। इंक नाम:
List<Book> list = new List<Book>();
return list.AsEnumerable();
जैसा कि इस MSDN लिंक ने संकलन-समय में सूची के प्रकार को बदल दिया है। इससे आपको केवल अपने संग्रह की गणना करने के लिए ही लाभ मिलेगा (इसके लिए MSDN उदाहरण देखें)।
क्यों नहीं एक लाइनर का उपयोग करें ...
IEnumerable<Book> _Book_IE= _Book_List as IEnumerable<Book>;
जहां तक मुझे पता है कि List<T>
इम्प्लाइज हैं IEnumerable<T>
। इसका मतलब है कि आपको कुछ भी बदलने या कास्ट करने की आवश्यकता नहीं है।
IEnumerable<IList<obj>>
एक के लिए IEnumerable<IEnumerable<obj>>
यह इसमें दूसरा पहले एक से विरासत नहीं है एक संकलक त्रुटि देता है।
IEnumerable<Book> _Book_IE;
List<Book> _Book_List;
यदि यह सामान्य संस्करण है:
_Book_IE = _Book_List;
यदि आप गैर-जेनेरिक में बदलना चाहते हैं:
IEnumerable ie = (IEnumerable)_Book_List;