基础查询操作符的使用
在处理可观察对象时,当源可观察对象发出通知后,通知通常会经过一个管道,最终到达目标观察者。下面将介绍一些基础的查询操作符,包括映射、扁平化、过滤等操作。
1. 选择重要信息(映射)
可观察对象会发出通知,但有时接收到的通知并非我们所期望的,或者其形式不利于程序处理。例如,在与远程端点交互时,传输的对象通常是简单轻量级的数据传输对象(DTO),仅包含必要信息。当 DTO 进入应用程序后,我们可能需要将其转换为更适合使用的数据类型,这时可以使用 Select
操作符。
1.1 Select 操作符
Select
操作符可以将可观察管道中流动的通知转换为更适合我们使用的数据格式。在函数式编程中,这个操作符也被称为 Map
。
IObservable<ChatMessage> messages = ...
IObservable<ChatMessageViewModel> messagesViewModels =
messages
.Select(m => new ChatMessageViewModel
{
MessageContent = m.Content,
User = LoadUserFromDb(m.Sender)
});
上述代码展示了如何使用 Select </