51

如何将ObservableCollectiona转换List为所持有的对象?

4

6 回答 6

75

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

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

于 2010-10-27T17:06:37.007 回答
69

根据ObservableCollection...中对象的类型,我假设它是int这个例子的一个:

IEnumerable<int> obsCollection = (IEnumerable<int>)GetCollection();
var list = new List<int>(obsCollection);
于 2009-11-01T22:43:14.253 回答
26

鉴于ObservableCollection<T>实现,IEnumerable<T>您可以将其提供给以下构造函数List<T>

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

T集合中项目的类型在哪里。

于 2009-11-01T22:45:35.527 回答
4

ObservableCollectionimplements IList<T>,所以你应该可以使用ToList()它。

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

于 2009-11-01T22:42:54.403 回答
2

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

于 2009-11-01T22:44:35.623 回答
0

我认为这里的问题是,当您尝试将 ObservableCollection 转换为 List 或这样使用时,可能会即时修改 ObservableCollection,因此您可能需要使用某种看门狗计时器,直到 ObservableCollection 完成

于 2010-12-01T04:07:45.593 回答