मैं एक सामान्य शब्दकोश पूछने के लिए LINQ का उपयोग कर रहा हूं और फिर परिणाम को मेरी सूची दृश्य (वेबफॉर्म) के लिए डेटास्रोत के रूप में उपयोग करता हूं।मैं # #सूची में <T> सूची में IENumerable <T> कैसे परिवर्तित कर सकता हूं?
सरलीकृत कोड:
Dictionary<Guid, Record> dict = GetAllRecords();
myListView.DataSource = dict.Values.Where(rec => rec.Name == "foo");
myListView.DataBind();
मैंने सोचा था कि काम करेगा लेकिन वास्तव में यह एक System.InvalidOperationException फेंकता है:
आईडी 'myListView' कोई डेटा स्रोत होना आवश्यक है साथ ListView कि या तो आईसीओलेक्शन लागू करता है या डेटा स्रोत पेजिंग कर सकता है यदि AllowPaging सत्य है।
Dictionary<Guid, Record> dict = GetAllRecords(); List<Record> searchResults = new List<Record>(); var matches = dict.Values.Where(rec => rec.Name == "foo"); foreach (Record rec in matches) searchResults.Add(rec); myListView.DataSource = searchResults; myListView.DataBind();
वहाँ पहले उदाहरण में एक छोटे से पकड़ लिया यह काम करने के लिए है:
आदेश में यह करने के वर्किंग मैं निम्नलिखित का सहारा लेना पड़ा है?
var matches = dict.Values.Where(rec => rec.Name == "foo").ToList();
ध्यान रखें कि कि अनिवार्य रूप से हो जाएगा:
यह http://stackoverflow.com/questions/472669/c-freely-convert-between-listt-and-ienumerablet – John