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>);

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
 )

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);
    }
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.