Rx 操作符详解:从基础到高级应用
1. Rx 基本操作符概述
Rx 提供了丰富的操作符来处理可观察序列。不过,它在某些方面有自己的特性,例如对于接受投影 lambda 的Average、Sum、Min和Max版本并不支持,这些操作符只能用于产生内置数值类型的可观察源。但可以通过Select操作符来重新实现基于投影版本的功能,示例如下:
static IObservable<double> AverageX(IObservable<Point> points) { return points.Select(p => p.X).Average(); }这个示例展示了如何计算Point序列中X坐标的平均值。
1.1 Concat 操作符
Concat操作符与其他 LINQ 实现的概念相同,它将两个输入序列合并为一个序列,先输出第一个输入序列的所有项,然后输出第二个输入序列的所有项。实际上,Rx 的Concat操作符更强大,它可以接受一个输入集合并将它们全部连接起来。
不过,使用Concat操作符时需要注意,它只有在第一个流最终完成时才有效。而且,该操作符在第一个流完成之前