Observable.Concat<TSource> メソッド (IObservable<TSource>、IObservable<TSource>)
2 つの監視可能なシーケンスを連結します。
Namespace:System.Reactive.Linq
アセンブリ: System.Reactive (System.Reactive.dll)
構文
'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.
型パラメーター
- TSource
ソースの種類。
パラメーター
- first
種類: System.IObservable<TSource>
最初の監視可能なシーケンス。
- second
種類: System.IObservable<TSource>
2 番目の観測可能なシーケンス。
戻り値
種類: System.IObservable<TSource>
最初のシーケンスの要素を含み、その後に 2 番目のシーケンスの要素が続く観測可能なシーケンス。
使用上の注意
Visual Basic および C# では、 IObservable<TSource> 型の任意のオブジェクトでインスタンス メソッドとしてこのメソッドを呼び出すことができます。 インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。 詳細については、」または」を参照してください。
解説
Concat 演算子は、最初のシーケンスを実行して完了します。 次に、2 番目のシーケンスを実行して、2 番目のシーケンスを最初のシーケンスの末尾に効果的に連結します。 この演算子の他のオーバーロードでは、2 つ以上の監視可能なシーケンスを連結できます。 Concat 演算子を拡張メソッドとして呼び出す場合、 最初 のパラメーターは拡張メソッドの実行元のシーケンスです。 これは、このトピックのコード例で示されています。 2 番目のパラメーターとして演算子に渡されたシーケンスは、最初のシーケンスが完了まで実行された場合にのみ、最初のシーケンスに連結されます。 そのため、2 番目のシーケンスへのサブスクリプションは、最初のシーケンスが完了するまで遅延されることに注意してください。 例外またはブロックが原因で完了まで実行されない場合、2 番目のシーケンスのサブスクリプションは作成されません。
例
このコード例では、2 つの整数シーケンスを連結して、整数 1 から 6 のシーケンスを生成する方法を示します。 各整数はコンソール ウィンドウに書き込まれます。
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();
}
}
}
コード例からの出力を次に示します。
1
2
3
4
5
6