将IEnumerable <t>转换为ObservableCollection <t>,无需构造函数注入IEnumerable <t> </t> </t> </t>

时间:2010-07-18 18:13:13

标签: ienumerable observablecollection casting

我该怎么做?

那是不行的:

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
};

产品是一个ObservableCollection,所以它不能从上面的选择中获取IEnumerable结果......

如何施展?

1 个答案:

答案 0 :(得分:2)

像这样:

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

请注意,ObservableCollection实例不会反映对customers列表的更改。

编辑:Select扩展方法返回编译器生成的迭代器类的实例。由于此类不继承ObservableCollection,因此无法将其转换为一个。