Преобразование List <T> в ObservableCollection <T>


Ответы:


254

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

Конструктор Observable Collection примет 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.