Sequence manipulation and filtering
Manipulation and filtering of sequence messages helps in the development of complex messaging designs. The most immediate and widely used operator is Where, which creates a routing sequence of messages already filtered based on its filtering predicate. We have already seen some of the manipulating or filtering factory methods in the previous chapter, such as the Take, Skip, Distinct, and DistinctUntilChanged methods.
Where
The Where factory method creates a new sequence that flows messages from another sequence only when a specific Where predicate succeeds. Here's an example:
//fixed-time interval sequence
var fixedTimeBasedSequence = Observable.Interval(TimeSpan.FromSeconds(1));
//convert the message
//into time value
var dateTimeSequence = fixedTimeBasedSequence
.Select(v=> DateTime.UtcNow );
//filtered sequence of times with even second value
var filteredSequence = dateTimeSequence.Where(dt...