gpt4 book ai didi

c# - 从 observablecollection 创建 observable

转载 作者:行者123 更新时间:2023-11-30 13:12:09 27 4
gpt4 key购买 nike

我有 ObservableCollection 并且我需要创建 observable 如果集合包含任何元素则返回 true

我试着这样做

var collectionHasElementsObservable =
Observable.FromEventPattern<NotifyCollectionChangedEventHandler,NotifyCollectionChangedEventArgs>(
ev => ((ObservableCollection<MyType>)_items).CollectionChanged += ev,
ev => ((ObservableCollection<MyType>)_items).CollectionChanged -= ev);

但我不知道如何将其转换为 IObservable

如何从中创建 observable

最佳答案

您可以使用Select 将事件映射到具有元素之一:

        ObservableCollection<int> coll = new ObservableCollection<int>();

var hasElements =
Observable.FromEventPattern<NotifyCollectionChangedEventHandler,NotifyCollectionChangedEventArgs>(
a => coll.CollectionChanged += a,
a => coll.CollectionChanged -= a)
.Select(_ => coll.Count > 0);

示例:

        hasElements.Subscribe(Console.WriteLine);

coll.Add(1);
coll.Add(2);
coll.Remove(1);
coll.Remove(2);

输出:

True
True
True
False

这就是您要找的吗?

关于c# - 从 observablecollection 创建 observable<bool>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13621719/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com