【问题标题】:Behavior of ObservableCollection(IEnumerable) constructorObservableCollection(IEnumerable) 构造函数的行为
【发布时间】:2011-01-08 10:25:03
【问题描述】:

根据 MSDN,ObservableCollection 构造函数有一个重载,您可以将 IEnumerable 传递给该构造函数。根据非常短的 MSDN 页面,这将制作 Ienumerable 的“副本”。

如何确定其行为方式? “副本”是否会完全独立于原始文件,或者对 Ienumerable 所做的更改(例如通过 linq 查询)是否会自动反映在 ObservableCollection 中?

MSDN Page

【问题讨论】:

    标签: c# .net ienumerable observablecollection


    【解决方案1】:

    此构造函数遍历IEnumerable 中的项目并将每个项目添加到ObservableCollection。完成后,新的ObservableCollectionIEnumerable 无关(除非您正在处理引用类型的集合,那么ObservableCollection 将保存对@ 提供的相同对象的引用987654326@).

    【讨论】:

    • 这解释了为什么事情对我来说很奇怪,我的 Ienumerable 是 Linq 查询的结果。我期望有一个查询结果的“平面”集合,但是我得到了像 _Employee1 = {System.Data.Linq.EntityRef} 这样的对象我假设因为 ObserveableCollection 没有实现IQueryable 他们不能被引用。现在我看到你可以有两个包含相同引用但实现不同接口的集合?您可以查询 IQueryable 并绑定到 ObservableCollection 以获得两全其美?
    猜你喜欢
    • 2011-03-17
    • 2018-03-27
    • 2016-03-19
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    相关资源
    最近更新 更多