将可观察的集合转换回常规集合
一个函数有一个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()
。
Items属性返回一个IList。 请参阅http://msdn.microsoft.com/en-us/library/ms132435.aspx
我认为这里的问题是,当您尝试将其转换为List或使用时,ObservableCollection可能会被即时修改,因此您可能需要使用一个sorting的监视程序计时器,直到ObservableCollection完成