2008-10-28 13 views
19

क्या सूची के माध्यम से पुन: प्रयास किए बिना और ऑब्जर्जेबल कोलेक्शन में आइटम जोड़ने के बिना ऐसा करने का कोई तरीका है?मैं VB.NET में एक ऑब्जेर्जेबल कोलेक्शन (टी) में एक सूची (टी) को कैसे परिवर्तित करूं?

+0

संबंधित सवाल देखें::

निम्नलिखित की तरह

http://stackoverflow.com/questions/731626/ilistt-to-observablecollectiont – gideon

उत्तर

38

नहीं, सूची को एक अवलोकन संग्रह में सीधे रूपांतरित करने का कोई तरीका नहीं है। आपको प्रत्येक आइटम को संग्रह में जोड़ना होगा। हालांकि, नीचे एक वर्ककट है जो ढांचे को मूल्यों की गणना करने और उन्हें आपके लिए जोड़ने की अनुमति देता है।

Dim list as new List(of string) 
...some stuff to fill the list... 
Dim observable as new ObservableCollection(of string)(list) 
18

मुझे देर हो रही है, लेकिन मैं एक ObservableCollection में एक सूची परिवर्तित करने के लिए इस दिलचस्प टुकड़ा साझा करने के लिए यदि आप एक पाश की जरूरत हैं:

public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> coll) 
{ 
    var c = new ObservableCollection<T>(); 
    foreach (var e in coll) c.Add(e); 
    return c; 
} 

आप ObservableCollection निर्माता के लिए एक संग्रह गुजारें सकता:

List<Product> myProds = ...... 
ObservableCollection<Product> oc = new ObservableCollection<Product>(myProds); 

अब आप VB.NET :)

+0

कि सी # नहीं VB.NET लेकिन +1 के लिए इसे सुलझाने के लिए वैसे भी कोई भी IENumerable (और देर से होने के लिए भी!) – MarkJ

+0

कूल मजाक! यह असली सूक्ष्म हास्य है !! – RredCat

2

करने के लिए इन अनुवाद करने के लिए है स्पष्ट (एक अतिरिक्त उदाहरण के साथ आप LINQ कि एक IEnumerable देता उपयोग कर रहे हैं) क्या जूनियर कह रहा है:

//Applications is an Observable Collection of Application in this example 
List<Application> filteredApplications = 
     (Applications.Where(i => i.someBooleanDetail)).ToList(); 
Applications = new ObservableCollection<Application>(filteredApplications); 
2
//Create an observable collection TObservable. 

ObservableCollection (TObservable) =new ObservableCollection (TObservable)(); 

//Convert List items(OldListItems) to collection 

OldListItems.ForEach(x => TObservable.Add(x)); 
0
ObservableCollection<yourobjectname> result = new ObservableCollection<yourobjectname>(yourobjectlist); 
+0

कृपया यहां अपने उत्तर का विवरण दें। –

1

हालांकि मैं कर रहा हूँ देर से, मैं Junior के लिए एक त्वरित वृद्धि का हिस्सा चाहता हूँ का जवाब: डेवलपर को परिवर्तनीय संग्रह ऑब्जेक्ट्स को स्रोत संग्रह से गंतव्य स्थान में परिवर्तित करने के लिए उपयोग किए गए कनवर्टर फ़ंक्शन को परिभाषित करने दें।

public static ObservableCollection<TDest> ToObservableCollection<TDest, TSource>(this IEnumerable<TSource> coll, Func<TSource, TDest> converter) 
    { 
     var c = new ObservableCollection<TDest>(); 
     foreach (var e in coll) 
     { 
      c.Add(converter(e)); 
     } 
     return c; 
    } 
संबंधित मुद्दे

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