0
それぞれにIObserverを持つアイテムのコレクションと、メッセージ(!)を生成するメッセージソースがあります。メッセージをフィルタリングし、それぞれに関連するもののみを送信します。項目。私はこれがSystem.Reactiveのlinqに適していると思う。以下の例である:ループ内に複数のIObserversを設定する方法
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
が20の場合、各クエリはプロパティitem
になります。20.
これを修正するにはどうすればよいですか?
ありがとう、これは[this]と同じです(http://stackoverflow.com/q/8898925/337065) –
はい、まさにそれです。 –
私が覚えている限り、C#5の変更に対応しているサイドノートに。 – cyberzed