Я получил наблюдаемую KeyValuePair:
--(7|45.2)--(3|11.1)--(5|13.2)--(6|36.2)--(3|57.4)
Я получил список потребителей, определенных во время выполнения.Их интересуют только значения, созданные для одного ключа ( myKey ).
Например:
- потребитель 7 заинтересован только в значении 45.2,
- потребитель 3 интересуется только значениями 11.1 и 57.4
- потребитель 1, интересуются только значениями с myKey = 1, поэтому здесь ничего нет.
Вот мой код подписки потребителя (по одному на каждого потребителя):
myObservable.Where(t => t.Key == myKey).Subscribe(t => /* DoSomething*/);
Давайте возьмем:
- N = количество сообщений, создаваемых myObservable
- M = количество потребителей
Давайте назовем Сравнение кодом t.Key == myKey
Для каждого нового публикуемого сообщения Сравнение будет выполняться M раз (один раз для каждого потребителя).В случае N сообщений будет выполнено сравнение N * M
Предлагает ли RX Extension другой способ избежать выполнения такого количества сравнений?
Нужно ли мнесделать это сам?(используя словарь (mykey, потребителей), например, и пересылать сообщения нужным пользователям)
Спасибо