Приведите IEnumerable <T>к ObservableCollection <T>без внедрения в конструктор IEnumerable <T> - PullRequest
1 голос
/ 18 июля 2010

Как я могу это сделать?

вот и все:

ObservableCollection obsCol = new ObservableCollection (myIEnumerable);

сценарий:

var query = from c in customers
                    select new Customer()
                    {
                       Products = from p in products
                                  where p.Id = c.Id
                                  select p
};

Products - это ObservableCollection, поэтому он не может взять IEnumerable результат из выбора выше ...

Как разыграть?

1 Ответ

2 голосов
/ 18 июля 2010

Как это:

ObservableCollection obsCol = new ObservableCollection(myIEnumerable.ToList());

Обратите внимание, что экземпляр ObservableCollection не будет отражать изменения в списке customers.

EDIT : метод расширения Select возвращает экземпляр сгенерированного компилятором класса итератора. Поскольку этот класс не наследует ObservableCollection, невозможно привести его к одному.

...