【发布时间】:2009-11-01 22:39:42
【问题描述】:
如何将持有对象的ObservableCollection 转换为List?
【问题讨论】:
如何将持有对象的ObservableCollection 转换为List?
【问题讨论】:
只需要添加命名空间using System.Linq;
并在 ObservableCollection 对象中使用 ToList() 方法
【讨论】:
取决于ObservableCollection 中的对象类型...对于本示例,我假设它是int:
IEnumerable<int> obsCollection = (IEnumerable<int>)GetCollection();
var list = new List<int>(obsCollection);
【讨论】:
object 接收。如果您实际上将其作为ObservableCollection 接收,那么是的,演员表是不必要的。
鉴于ObservableCollection<T> 实现了IEnumerable<T>,您可以将其交给List<T> 的构造函数:
List<T> myList = new List<T>(myObservableCollection);
其中T 是集合中项目的类型。
【讨论】:
ObservableCollection 实现了IList<T>,所以你应该可以在上面使用ToList()。
【讨论】:
Items 属性返回一个 IList。 See http://msdn.microsoft.com/en-us/library/ms132435.aspx
【讨论】:
我认为这里的问题是,当您尝试将 ObservableCollection 转换为 List 或使用时,它可能会被即时修改,因此您可能需要使用各种看门狗计时器,直到 ObservableCollection 完成
【讨论】: