2009-11-01 33 views
35

एक फ़ंक्शन में ऑब्जेक्ट का पैरामीटर होता है। मैंने इसे देखने के लिए डीबग किया कि कार्यक्रम के दूसरे भाग ने मुझे किस प्रकार का डेटाटाइप भेजा है। आधार एक पर्यवेक्षण चयन का था। मैं इसे एक सूची में कैसे परिवर्तित करूं?अवलोकन संग्रह को नियमित संग्रह में वापस परिवर्तित करना

उत्तर

44

ObservableCollection में वस्तु के प्रकार पर निर्भर ... मैं इसे इस उदाहरण के लिए एक int है मान लेंगे:

IEnumerable<int> obsCollection = (IEnumerable<int>)GetCollection(); 
var list = new List<int>(obsCollection); 
+0

@ मैथ्यू, मैं अनावश्यक स्पष्ट कलाकारों के बिना इसे फिर से लिखता हूं - अगर आपको यह पसंद नहीं है तो इसे वापस बदलें। –

+1

@ 280Z28: मूल प्रश्न के मुताबिक, उसे अपने संग्रह के रूप में एक वस्तु मिल रही है, जिस स्थिति में कहीं भी एक कलाकार की आवश्यकता होती है। –

+0

इसे IENumerable <> क्यों डाला गया? क्या मैं इसे नई सूची <> (यहां) में बस नहीं छोड़ सका? –

3

ObservableCollectionIList<T> लागू करता है, तो आप ToList() पर इसका उपयोग करने में सक्षम होना चाहिए।

http://msdn.microsoft.com/en-us/library/bb342261.aspx

+1

केवल LINQ के साथ 3.5 में समाप्त होता है, तो मैं तर्क दूंगा कि केवल एक आईनेमरेबल से स्वयं को सूची बनाना आसान है। यदि आपके पास केवल ऑब्जेक्ट है तो इसमें अभी भी एक कलाकार शामिल है। –

18

यह देखते हुए कि ObservableCollection<T> औजार IEnumerable<T> आप List<T> के निर्माता को दे सकते हैं:

List<T> myList = new List<T>(myObservableCollection); 

कहाँ T संग्रह में आइटम के प्रकार है।

51

बस नाम स्थान using System.Linq;

जोड़ सकते हैं और ObservableCollection वस्तु में विधि ToList() उपयोग करने की आवश्यकता

0

मुझे लगता है कि यहां मुद्दा यह है कि ObservableCollection मक्खी पर संशोधित किया जा सकता है जब आप इसे एक को बदलने की कोशिश इस तरह की सूची या उपयोग करें, इसलिए जब तक ऑब्जर्जेबल कोलेक्शन

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