将可观察的集合转换回常规集合

一个函数有一个objecttypes的参数。 我debugging它看看程序的另一部分发给我什么types的数据types。 基地是一个ObservableCollection。 我如何将其转换为列表?

取决于ObservableCollection的对象的types…我将假设这是一个int这个例子:

 IEnumerable<int> obsCollection = (IEnumerable<int>)GetCollection(); var list = new List<int>(obsCollection); 

只需要using System.Linq;添加命名空间using System.Linq;

并使用ObservableCollection对象中的方法ToList()

鉴于ObservableCollection<T>实现了IEnumerable<T>你可以把它给给List<T>的构造函数:

 List<T> myList = new List<T>(myObservableCollection); 

其中T是集合中项目的types。

ObservableCollection实现了IList<T> ,所以你应该可以使用ToList()

http://msdn.microsoft.com/en-us/library/bb342261.aspx

Items属性返回一个IList。 请参阅http://msdn.microsoft.com/en-us/library/ms132435.aspx

我认为这里的问题是,当您尝试将其转换为List或使用时,ObservableCollection可能会被即时修改,因此您可能需要使用一个sorting的监视程序计时器,直到ObservableCollection完成