मेरे पास एक कक्षा है जो IEnumerable
लागू करती है, लेकिन IEnumerable<T>
लागू नहीं करती है। मैं इस वर्ग को नहीं बदल सकता, और मैं इसके बजाय किसी अन्य वर्ग का उपयोग नहीं कर सकता। जैसा कि मैंने एमएसडीएन LINQ can be used if class implements IEnumerable<T>
से समझा है। मैंने instance.ToQueryable()
का उपयोग करने का प्रयास किया है, लेकिन यह अभी भी LINQ विधियों को सक्षम नहीं करता है। मुझे यकीन है कि इस वर्ग में केवल एक ही प्रकार के उदाहरण हो सकते हैं, इसलिए कक्षा IEnumerable<T>
लागू कर सकती है, लेकिन यह अभी नहीं है। तो LINQ अभिव्यक्तियों का उपयोग करके इस वर्ग से पूछने के लिए मैं क्या कर सकता हूं?क्या LINQ IENumerable के साथ काम करता है?
उत्तर
आप Cast<T>()
या OfType<T>
का उपयोग कर सकते हैं ताकि एक IENumerable का सामान्य संस्करण प्राप्त हो जो LINQ का पूरी तरह से समर्थन करता है।
ईजी।
IEnumerable objects = ...;
IEnumerable<string> strings = objects.Cast<string>();
या यदि आप नहीं जानते कि किस प्रकार होता है तो आप हमेशा कर सकते हैं:
IEnumerable<object> e = objects.Cast<object>();
तो अपने गैर सामान्य IEnumerable
विभिन्न प्रकार की वस्तुओं में शामिल है और आप केवल उदाहरण में रुचि रखते हैं। तार आप कर सकते हैं:
IEnumerable<string> strings = objects.OfType<string>();
हां यह कर सकता है। आपको टाइप किए गए IEnumerable<T>
में कनवर्ट करने के लिए बस Cast
फ़ंक्शन का उपयोग करने की आवश्यकता है। उदाहरण के लिए
IEnumerable e = ...;
IEnumreable<object> e2 = e.Cast<object>();
अब e2
एक IEnumerable<T>
है और सभी LINQ कार्यों के साथ काम कर सकते हैं।
तुम भी LINQ के प्रश्न समझ वाक्य रचना है, जो (इस उदाहरण में item
) रेंज चर के प्रकार के डाले अगर एक प्रकार निर्दिष्ट किया जाता है का उपयोग कर सकते हैं:
IEnumerable list = new ArrayList { "dog", "cat" };
IEnumerable<string> result =
from string item in list
select item;
foreach (string s in result)
{
// InvalidCastException at runtime if element is not a string
Console.WriteLine(s);
}
प्रभाव @ जेरेडपायर के समाधान के समान है; 7.16.2.2 देखें: विवरण के लिए सी # भाषा विनिर्देश में स्पष्ट रेंज परिवर्तनीय प्रकार।
हाँ यह करता है,
मैं तुम्हें IEnumerable कास्टिंग के बिना आप बेहतर
List<Student> obj = new List<Student>();
obj.Add(new Student() { name = "xyz", roll = 12, school = "pqr" });
obj.Add(new Student() { name = "xyz", roll = 12, school = "pqr" });
obj.Add(new Student() { name = "xyz", roll = 12, school = "pqr" });
obj.Add(new Student() { name = "xyz", roll = 12, school = "pqr" });
obj.Add(new Student() { name = "xyz", roll = 12, school = "pqr" });
IEnumerable<Student> students = from x in obj.AsEnumerable()
select x;
foreach (var item in students)
{
MessageBox.Show(item.name);
}
class Student
{
public string name { get; set; }
public int roll { get; set; }
public string school { get; set; }
}
'सूची
- 1. LINQ - IEnumerable
- 2. क्या LINQ इंडेक्स पर काम करता है?
- 3. linq अंतिम() कैसे काम करता है?
- 4. क्यों सहप्रसरण सामान्य विधि के साथ काम नहीं करता है
- 5. LINQ में ऑर्डरबी कैसे काम करता है (दृश्यों के पीछे)?
- 6. जेड के साथ काम करता है?
- 7. क्या accepts_nested_attributes_for works_to के साथ काम करता है?
- 8. क्या Resharper 6.1 MBUnit के साथ काम करता है?
- 9. क्या simple_form के साथ form_tag काम करता है?
- 10. क्या वेबकिट-स्क्रॉलबार वेबकिट-संक्रमण के साथ काम करता है?
- 11. क्या फ़्लेंटमिग्रेटर एसक्यूएल सर्वर 2012 के साथ काम करता है?
- 12. क्या पीपीपी एनएलटीके के साथ काम करता है?
- 13. क्या ब्लूकोव लिनक्स 64 बिट्स के साथ काम करता है?
- 14. क्या अपाचे रैंपर्ट मेवेन के साथ काम करता है?
- 15. क्या JFrame.setExtendedState (MAXIMIZED_BOTH) अवांछित फ्रेम के साथ काम करता है?
- 16. क्या PyPy Py2Exe के साथ काम करता है?
- 17. क्या ko.toJSON() तिथियों के साथ काम करता है?
- 18. क्या django-compressor टेम्पलेट विरासत के साथ काम करता है?
- 19. क्या TestDriven.NET वीएस एक्सप्रेस के साथ काम करता है?
- 20. क्या एआरसी कोर ग्राफिक्स ऑब्जेक्ट्स के साथ काम करता है?
- 21. क्या ऑरक्रेट अन्य डोमेन उदाहरणों के साथ काम करता है?
- 22. क्या functools.partial multiprocessing.Pool.map के साथ काम नहीं करता है?
- 23. क्या पेर्लब्रू साइगविन के साथ काम करता है?
- 24. क्या PullToRefresh FragmentPagerAdapter के साथ काम करता है?
- 25. क्या एनयूएनआईटी 3.5 के साथ काम करता है?
- 26. ज़ूकीपर के साथ कैसंद्रा लेनदेन - क्या यह काम करता है?
- 27. क्या अक्का इवेंटबस रिमोट एक्टर्स के साथ काम करता है?
- 28. क्या REX.B MOVSS निर्देश के साथ काम करता है?
- 29. LINQ आस्थगित निष्पादन जब तरीकों कि IEnumerable
- 30. LINQ से एक्सएमएल - यह कैसे काम करता है?
को समझने के लिए कम उदाहरण दे देंगे, सभी LINQ तरीकों के बजाय आप केवल 8 तरीकों देखेंगे: AsQueryable , कास्ट <>, बराबर, GetEnumerator, GetHashCode, GetType, OfType <>, ToString – ShawnFeatherly