Freigeben über


Observable.Concat<TSource-Methode> (IObservable<TSource>, IObservable<TSource>)

Verkettet zwei beobachtbare Sequenzen.

Namespace:System.Reactive.Linq
Versammlung: System.Reaktiv (in 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.

Typparameter

  • TSource
    Der Quellentyp.

Parameter

Rückgabewert

Typ: System.IObservable<TSource>
Eine beobachtbare Sequenz, die die Elemente der ersten Sequenz enthält, gefolgt von denen der zweiten Sequenz.

Hinweis zur Verwendung

In Visual Basic und C# können Sie diese Methode als instance-Methode für jedes Objekt vom Typ IObservable<TSource> aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter oder .

Bemerkungen

Der Concat-Operator führt die erste Sequenz bis zum Abschluss aus. Anschließend wird die zweite Sequenz bis zum Abschluss ausgeführt, wodurch die zweite Sequenz effektiv mit dem Ende der ersten Sequenz verkettet wird. Andere Überladungen dieses Operators ermöglichen die Verkettung von mehr als zwei beobachtbaren Sequenzen. Beim Aufrufen des Concat-Operators als Erweiterungsmethode ist der erste Parameter die Sequenz, aus der die Erweiterungsmethode ausgeführt wird. Dies wird im Codebeispiel in diesem Thema veranschaulicht. Die Sequenz, die als zweiter Parameter an den Operator übergeben wird, wird nur dann mit der ersten Sequenz verkettet, wenn die erste Sequenz bis zum Abschluss ausgeführt wird. Daher ist es wichtig zu beachten, dass das Abonnement der zweiten Sequenz zurückgestellt wird, bis die erste Sequenz bis zum Abschluss ausgeführt wird. Wenn sie aufgrund einer Ausnahme oder einer Blockierung nicht bis zum Abschluss ausgeführt wird, wird kein Abonnement für die zweite Sequenz erstellt.

Beispiele

Dieser Beispielcode veranschaulicht das Verketten von zwei Sequenzen ganzzahliger Zahlen, um eine Sequenz der ganzen Zahlen 1 bis 6 zu erzeugen. Jede ganze Zahl wird in das Konsolenfenster geschrieben.

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

Die Ausgabe des Beispielcodes ist unten dargestellt.

1
2
3
4
5
6

Weitere Informationen

Verweis

Beobachtbare Klasse

Concat-Überladung

System.Reactive.Linq-Namespace