में तत्व जोड़ें मेरे पास एक अवलोकन करने योग्य चयन है, और मैं इसे एक आईएलआईस्ट की सामग्री सेट करना चाहता हूं। अब मैं सिर्फ .. संग्रह का एक नया उदाहरण बना सकते हैं:IList से ObservableCollection
public ObservableCollection<Bar> obs = new ObservableCollection<Bar>();
public void Foo(IList<Bar> list)
{
obs = new ObservableCollection<Bar>(list);
}
लेकिन यह कैसे मैं वास्तव में IList की सामग्री लेने के लिए और अपने मौजूदा ObservableCollection में जोड़ सकते हैं? क्या मुझे सभी तत्वों पर लूप करना है, या क्या कोई बेहतर तरीका है? के बाद से कोई AddRange
ObservableCollection
के लिए बराबर
public void Foo(IList<Bar> list)
{
foreach (var elm in list)
obs.Add(elm);
}
Thx! ToList के साथ गया था। अभी के लिए दृष्टिकोण। यदि मुझे इसे एक से अधिक स्थानों की आवश्यकता है तो विस्तार विधि पर विचार करें .. – stiank81
'एन्यूमेरेबल। टॉलिस्ट 'एक्सटेंशन विधि अनिवार्य रूप से एक नई' सूची' आवंटित करती है। मैं शायद राययल के जवाब की सिफारिश करता हूं। –
@ रिचर्ड - यह सच है हालांकि हुड के तहत यह नई सूची (सूची) करता है - जो आंतरिक रूप से कॉल करता है ((आईसीओलेक्शन ) सूची)। कॉपीो (टी []) जो IList (उदाहरण के लिए ) के अधिकांश कार्यान्वयन में कॉल करता है एक मूल (बाहरी) सरणी प्रति समारोह। यह काफी कुशल होना चाहिए और सदस्यों के पुनरावृत्ति के बजाय आवश्यक संदर्भों की परमाणु प्रति में केवल (अधिकतर) शामिल होना चाहिए। –