У меня есть коллекция элементов, каждый из которых имеет IObserver, и источник сообщений, который создает сообщения (!). Я хочу фильтровать сообщения и отправлять только соответствующие элементы каждому элементу. Я думаю, что это хорошо подходит для linq System.Reactive. Ниже приведен пример:
IObservable<Message> source;
foreach(item in items)
{
var filtered = from msg in source
where msg.Id == item.Id
selct msg;
filtered.Subscribe(item.Sink);
}
Проблема в том, что когда источник генерирует сообщение, запрос оценивается относительно последнего item
в цикле. Таким образом, если существует двадцать item
с, каждый запрос будет соответствовать свойствам item
20.
Как мне это исправить?