首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应式扩展混淆

反应式扩展混淆
EN

Stack Overflow用户
提问于 2017-03-12 18:59:00
回答 1查看 118关注 0票数 0

我怀疑我对反应式扩展的理解是不正确的,但我认为它们可以用来订阅对集合的方法调用。我在想一个典型的dotnet事件处理程序。我的最终目标是在集合被修改时触发一个方法调用。

我有以下小的控制台应用程序示例,正如您在注释中所看到的,我期望它重新打印结果,或者至少在将其添加到集合中时重新打印最后的结果。我还尝试了query.ToList(),看看重新运行查询是否会再次打印出结果。

代码语言:javascript
复制
   static void Main(string[] args)
    {
        // we have some data that is an IEnumerable It's lazy so we can query it.
        IEnumerable<int> data = new List<int>();

        for (int i = 0; i < 10; i++)
        {
            (data as List<int>).Add(i);
        }

        // create a linq query
        var query = from number in data select number;

        // create observable 
        IObservable<int> observableQuery = query.ToObservable<int>(Scheduler.Default);
        observableQuery.Subscribe(Console.WriteLine);



        /// the numbers get printed here 1.. 9
        Console.ReadKey();
        (data as List<int>).Add(1000);
        var l = query.ToList();
        var j = observableQuery.ToList();

        // the numbers don't get reprinted here... ? Shouldn't they reprint when the collection is modified?

        Console.ReadKey();
    }
EN

回答 1

Stack Overflow用户

发布于 2017-03-14 17:13:31

Rx不是用来监控集合中的状态变化的。ToObservable方法只是使用您调用它的时间点的集合内容生成一个新的可观察流。

如果你想在集合上使用Rx运算符,可以看看DynamicData project

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42746549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档