Ubah List <T> menjadi ObservableCollection <T>

Jawaban:

249

ObservableCollection <T> memiliki overload konstruktor yang membutuhkan IEnumerable <T>

Contoh untuk Daftar int:

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

Satu lagi contoh untuk Daftar ObjectA:

ObservableCollection<ObjectA> myCollection = new ObservableCollection<ObjectA>(myList as List<ObjectA>);
Denis
sumber
Saya lebih suka ini daripada membuat metode ekstensi. Membantu menjaga ketergantungan menghitung mundur.
markokstate
1
Bagaimana cara mencapai sebaliknya?
Arun Prasad
19

ObervableCollection memiliki konstruktor di mana Anda dapat melewati daftar Anda. Mengutip MSDN :

 public ObservableCollection(
      List<T> list
 )
Piotr Stapp
sumber
6

Konstruktor Observable Collection akan menggunakan IList atau IEnumerable.

Jika ternyata Anda akan sering melakukan ini, Anda dapat membuat metode ekstensi sederhana:

    public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> enumerable)
    {
        return new ObservableCollection<T>(enumerable);
    }
PaulC
sumber