Функция имеет параметр объекта типа. Я отлаживал его, чтобы посмотреть, какой тип данных передал мне другая часть программы. Основание было ObservableCollection. Как преобразовать это в список?
Преобразование наблюдаемой коллекции в обычную коллекцию
Ответ 1
В зависимости от типа объекта в ObservableCollection
... Я предполагаю, что это int
для этого примера:
IEnumerable<int> obsCollection = (IEnumerable<int>)GetCollection();
var list = new List<int>(obsCollection);
Ответ 2
Просто нужно добавить пространство имен using System.Linq;
и используйте метод ToList()
в объекте ObservableCollection
Ответ 3
Учитывая, что ObservableCollection<T>
реализует IEnumerable<T>
, вы можете передать его конструктору List<T>
:
List<T> myList = new List<T>(myObservableCollection);
Где T
- тип элементов в коллекции.
Ответ 4
ObservableCollection
реализует IList<T>
, поэтому вы можете использовать ToList()
на нем.
Ответ 5
Свойство Items возвращает IList. См. http://msdn.microsoft.com/en-us/library/ms132435.aspx
Ответ 6
Я думаю, что проблема здесь в том, что ObservableCollection может быть изменен "на лету", когда вы пытаетесь преобразовать его в список или использовать как таковой, поэтому вам может понадобиться использовать сторожевой таймер до тех пор, пока ObservableCollection не закончит