Sdílet prostřednictvím


Observable.Concat<TSource> – metoda (IObservable<TSource>, IObservable<TSource>)

Zřetězí dvě pozorovatelné sekvence.

Obor názvů:System.Reactive.Linq
Sestavení: System.Reactive (v System.Reactive.dll)

Syntax

'Declaration
<ExtensionAttribute> _
Public Shared Function Concat(Of TSource) ( _
    first As IObservable(Of TSource), _
    second As IObservable(Of TSource) _
) As IObservable(Of TSource)
'Usage
Dim first As IObservable(Of TSource)
Dim second As IObservable(Of TSource)
Dim returnValue As IObservable(Of TSource)

returnValue = first.Concat(second)
public static IObservable<TSource> Concat<TSource>(
    this IObservable<TSource> first,
    IObservable<TSource> second
)
[ExtensionAttribute]
public:
generic<typename TSource>
static IObservable<TSource>^ Concat(
    IObservable<TSource>^ first, 
    IObservable<TSource>^ second
)
static member Concat : 
        first:IObservable<'TSource> * 
        second:IObservable<'TSource> -> IObservable<'TSource> 
JScript does not support generic types and methods.

Parametry typu

  • Tsource
    Typ zdroje.

Parametry

Návratová hodnota

Typ: System.IObservable<TSource>
Pozorovatelná sekvence, která obsahuje prvky první sekvence následované prvky druhé sekvence.

Poznámka k využití

V jazyce Visual Basic a C# můžete tuto metodu volat jako metodu instance u libovolného objektu typu IObservable<TSource>. Pokud k volání této metody použijete syntaxi metody instance, vynechejte první parametr. Další informace naleznete v tématech a .

Poznámky

Operátor Concat spustí první sekvenci až do dokončení. Potom se spustí druhá sekvence, která efektivně zřetědí druhou sekvenci na konec první sekvence. Další přetížení tohoto operátoru umožňují zřetězení více než dvou pozorovatelných sekvencí. Při volání operátoru Concat jako rozšiřující metody je prvním parametrem sekvence, ze které se provádí metoda rozšíření. To je znázorněno v příkladu kódu v tomto tématu. Sekvence předaná operátoru jako druhý parametr bude zřetězena s první sekvencí pouze v době, kdy první sekvence běží do dokončení. Proto je důležité si uvědomit, že odběr druhé sekvence je odložen, dokud se první sekvence nespustí do svého dokončení. Pokud se nespustí do dokončení kvůli výjimce nebo blokování, pak se předplatné druhé sekvence nevytvořilo.

Příklady

Tento ukázkový kód ukazuje zřetězení dvou sekvencí celých čísel k vytvoření sekvence celých čísel 1-6. Každé celé číslo se zapíše do okna konzoly.

using System;
using System.Collections.Generic;
using System.Reactive.Linq;

namespace Example
{

  class Program
  {

    static void Main()
    {
      int[] sequence1 = {1, 2, 3};
      int[] sequence2 = {4, 5, 6};
      
      //*** Create a new observable sequence of integers by concatenating sequence2 to sequence1 ***//
      IObservable<int> sequences = sequence1.ToObservable().Concat(sequence2.ToObservable());

      //*** The event handler for the subscription will just write each integer from the sequence to the console window. ***//
      sequences.Subscribe(i => Console.WriteLine(i));

      Console.ReadLine();     
    }
  }
}

Výstup z ukázkového kódu je zobrazený níže.

1
2
3
4
5
6

Viz také

Reference

Pozorovatelná třída

Concat – přetížení

System.Reactive.Linq – obor názvů