Перетворити список <T> у ObservableCollection <T>


Відповіді:


250

ObservableCollection <T> має перевантаження конструктора, яке приймає IEnumerable <T>

Приклад для списку int:

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

Ще один приклад для списку ObjectA:

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

Я віддаю перевагу цьому над створенням методу розширення. Допомагає зменшити кількість залежностей.
markokstate

1
Як досягти навпаки?
Арун Прасад

19

ObervableCollection мають конструктор, в якому ви можете передати свій список. Цитуючи MSDN :

 public ObservableCollection(
      List<T> list
 )

6

Конструктор спостережуваної колекції візьме IList або IEnumerable.

Якщо ви виявите, що будете робити це багато, ви можете зробити простий метод розширення:

    public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> enumerable)
    {
        return new ObservableCollection<T>(enumerable);
    }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.