Udostępnij za pośrednictwem


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

Łączy dwie widoczne sekwencje.

Przestrzeń nazw:System.Reactive.Linq
Zestawu: System.Reaktywny (w System.Reactive.dll)

Składnia

'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 źródła.

Parametry

Wartość zwracana

Typ: System.IObservable<TSource>
Obserwowana sekwencja zawierająca elementy pierwszej sekwencji, po której następuje druga sekwencja.

Uwaga dotycząca użycia

W języku Visual Basic i C#można wywołać tę metodę jako metodę wystąpienia w dowolnym obiekcie typu IObservable<TSource>. Gdy w celu wywołania tej metody jest używana składnia metody wystąpienia, należy pominąć pierwszy parametr. Aby uzyskać więcej informacji, zobacz lub .

Uwagi

Operator Concat uruchamia pierwszą sekwencję do ukończenia. Następnie druga sekwencja jest uruchamiana w celu efektywnego łączenia drugiej sekwencji na końcu pierwszej sekwencji. Inne przeciążenia tego operatora umożliwiają łączenie więcej niż dwóch obserwowanych sekwencji. Podczas wywoływania operatora Concat jako metody rozszerzenia pierwszy parametr to sekwencja, z której jest wykonywana metoda rozszerzenia. Jest to pokazane w przykładzie kodu w tym temacie. Sekwencja przekazana do operatora jako drugi parametr zostanie połączona z pierwszą sekwencją tylko wtedy, gdy pierwsza sekwencja zostanie uruchomiona do ukończenia. Dlatego należy pamiętać, że subskrypcja drugiej sekwencji jest odroczona do momentu uruchomienia pierwszej sekwencji do jej ukończenia. Jeśli nie zostanie uruchomiona do ukończenia z powodu wyjątku lub jest blokowana, subskrypcja drugiej sekwencji nie zostanie utworzona.

Przykłady

W tym przykładowym kodzie pokazano łączenie dwóch sekwencji liczb całkowitych w celu utworzenia sekwencji liczb całkowitych 1–6. Każda liczba całkowita jest zapisywana w oknie konsoli.

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();     
    }
  }
}

Dane wyjściowe z przykładowego kodu przedstawiono poniżej.

1
2
3
4
5
6

Zobacz też

Odwołanie

Obserwowana klasa

Przeciążenie concat

Przestrzeń nazw System.Reactive.Linq