Converti un List <T> in un ObservableCollection <T>


Risposte:


249

ObservableCollection <T> ha un overload del costruttore che accetta IEnumerable <T>

Esempio per un elenco di int:

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

Un altro esempio per un elenco di ObjectA:

ObservableCollection<ObjectA> myCollection = new ObservableCollection<ObjectA>(myList as List<ObjectA>);

Lo preferisco rispetto alla creazione di un metodo di estensione. Aiuta a mantenere il conto alla rovescia delle dipendenze.
markokstate

1
Come ottenere viceversa?
Arun Prasad

19

ObervableCollection ha un costruttore in cui puoi passare la tua lista. Citando MSDN :

 public ObservableCollection(
      List<T> list
 )

6

Il costruttore di Observable Collection prenderà un IList o un IEnumerable.

Se scopri che lo farai spesso, puoi creare un semplice metodo di estensione:

    public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> enumerable)
    {
        return new ObservableCollection<T>(enumerable);
    }
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.