Konwertuj List <T> na ObservableCollection <T>

Odpowiedzi:

252

ObservableCollection <T> ma przeciążenie konstruktora, które pobiera IEnumerable <T>

Przykład listy int:

ObservableCollection<int> myCollection = new ObservableCollection<int>(myList);

Jeszcze jeden przykład dla listy ObjectA:

ObservableCollection<ObjectA> myCollection = new ObservableCollection<ObjectA>(myList as List<ObjectA>);
Denis
źródło
Wolę to od tworzenia metody rozszerzającej. Pomaga utrzymać odliczanie zależności.
markokstate
1
Jak to osiągnąć odwrotnie?
Arun Prasad
19

ObervableCollection ma konstruktora, w którym możesz przekazać swoją listę. Cytując MSDN :

 public ObservableCollection(
      List<T> list
 )
Piotr Stapp
źródło
6

Konstruktor kolekcji obserwowalnej pobierze IList lub IEnumerable.

Jeśli stwierdzisz, że będziesz to robić dużo, możesz zastosować prostą metodę rozszerzenia:

    public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> enumerable)
    {
        return new ObservableCollection<T>(enumerable);
    }
PaulC
źródło