如何使用条件从 ObservableCollection 复制数据?
How to copy data from ObservableCollection with conditions?
我想要一个 ObservableCollection 的副本,通过使用某些条件对其进行过滤。请帮我。
我尝试了以下代码:
ObservableCollection<YourEntity> clonedCollection = new ObservableCollection<YourEntity>(clonedList);
这没问题,但需要有条件的复制(从旧对象中过滤出新对象)。需要从 clonedList
复制一些特定数据
使用 linq 查询来过滤源集合中的元素。
.Where()
查询非常好。您也可以使用 .Select()
或任何其他查询。
ObservableCollection<YourEntity> cloned = new ObservableCollection<YourEntity>(source.Where(e => e.IsSomeConditionFulfilled()));
请注意,您不会克隆将 IEnumerable
传递给 ObservableCollection
的构造函数的对象 - 两个集合 cloned
和 source
将引用相同的对象。这意味着,如果您通过 source
集合(例如 source.First().SomeProperty = SomeValue
)更改某些 YourEntity
实例属性,并且该对象也包含在 cloned
集合中(例如 cloned.First() == source.First()
),那么这些更改将反映在那里。
我想要一个 ObservableCollection 的副本,通过使用某些条件对其进行过滤。请帮我。 我尝试了以下代码:
ObservableCollection<YourEntity> clonedCollection = new ObservableCollection<YourEntity>(clonedList);
这没问题,但需要有条件的复制(从旧对象中过滤出新对象)。需要从 clonedList
复制一些特定数据使用 linq 查询来过滤源集合中的元素。
.Where()
查询非常好。您也可以使用 .Select()
或任何其他查询。
ObservableCollection<YourEntity> cloned = new ObservableCollection<YourEntity>(source.Where(e => e.IsSomeConditionFulfilled()));
请注意,您不会克隆将 IEnumerable
传递给 ObservableCollection
的构造函数的对象 - 两个集合 cloned
和 source
将引用相同的对象。这意味着,如果您通过 source
集合(例如 source.First().SomeProperty = SomeValue
)更改某些 YourEntity
实例属性,并且该对象也包含在 cloned
集合中(例如 cloned.First() == source.First()
),那么这些更改将反映在那里。