Powiedzmy, że pierwsza sekwencja wychodzi do sieci, aby pobrać zawartość stron 1, 2, 3, 4, 5 (ale powróci w nieprzewidywalnej kolejności).Czy mogę sparować dwie sekwencje za pomocą pasującego klucza?
Sekwencja druga polega na przejściu do bazy danych w celu pobrania kontekstu dotyczącego tych samych rekordów 1, 2, 3, 4, 5 (ale dla celów tego przykładu nastąpi powrót w nieprzewidywalnej kolejności).
Czy istnieje metoda rozszerzenia Rx, która połączy je w jedną sekwencję , gdy każda pasująca para jest gotowa w obu sekwencjach? Oznacza to, że jeśli pierwsza sekwencja powróci w kolejności 4,2,3,5,1, a druga sekwencja powróci w kolejności 1,4,3,2,5, połączona sekwencja będzie wynosić (4,4), (3 , 3), (2,2), (1,1), (5,5) - zaraz po przygotowaniu każdej pary. Spojrzałem na Merge i Zip, ale nie wydają mi się dokładnie tym, czego szukam.
Nie chciałbym odrzucać par, które nie pasują, co moim zdaniem wyklucza prostą kombinację .Where.Select.
Wow, świetnie! Dziękuję bardzo, nie zdawałem sobie sprawy, że mogę dostać to, czego potrzebuję tutaj z Merge. Zrobiłem to na końcu, aby końcowa sekwencja dała parę: . Wybierz (g => nowy {First = g.ElementAt (0), drugi = g.ElementAt (1)}) – blaster
Działa to tylko wtedy, gdy 2 obserwowalne sekwencje są tego samego typu. OP wymieniał 1 strumień "kontekst", a drugi "treść", co implikowało różne typy danych. – Brandon
@Brandon, dodałem zmianę dla tej sytuacji. –