조건자를 기반으로 관찰 가능한 시퀀스의 요소를 필터링합니다.
네임스페이스:System.Reactive.Linq
어셈블리: System.Reactive(System.Reactive.dll)
Syntax
'Declaration
<ExtensionAttribute> _
Public Shared Function Where(Of TSource) ( _
source As IObservable(Of TSource), _
predicate As Func(Of TSource, Boolean) _
) As IObservable(Of TSource)
'Usage
Dim source As IObservable(Of TSource)
Dim predicate As Func(Of TSource, Boolean)
Dim returnValue As IObservable(Of TSource)
returnValue = source.Where(predicate)
public static IObservable<TSource> Where<TSource>(
this IObservable<TSource> source,
Func<TSource, bool> predicate
)
[ExtensionAttribute]
public:
generic<typename TSource>
static IObservable<TSource>^ Where(
IObservable<TSource>^ source,
Func<TSource, bool>^ predicate
)
static member Where :
source:IObservable<'TSource> *
predicate:Func<'TSource, bool> -> IObservable<'TSource>
JScript does not support generic types and methods.
형식 매개 변수
- TSource
형식 원본입니다.
매개 변수
- source
형식: System.IObservable<TSource>
필터링할 요소가 있는 관찰 가능한 시퀀스입니다.
- predicate
형식: System.Func<TSource, Boolean>
조건에 대한 각 원본 요소를 테스트하는 함수입니다.
반환 값
형식: System.IObservable<TSource>
조건을 충족하는 입력 시퀀스의 요소를 포함하는 관찰 가능한 시퀀스입니다.
사용 정보
Visual Basic 및 C#에서는 IObservable TSource> 형식의 모든 개체에서 이 메서드를 instance 메서드로 호출할 수 있습니다<. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다. 자세한 내용은 또는 를 참조하세요.
설명
Where 연산자를 사용하면 시퀀스에서 각 항목을 테스트하는 조건자 함수를 정의할 수 있습니다. 조건자 함수가 false를 반환하도록 하는 소스 시퀀스의 각 항목은 결과 시퀀스에서 필터링됩니다.
예제
다음 예제에서는 LINQ(Language Integerated Query)가 있는 Where 연산자를 사용하여 정수 시퀀스를 필터링하여 시퀀스에 대한 정수만 생성되도록 합니다.
using System;
using System.Reactive.Linq;
namespace Example
{
class Program
{
static void Main()
{
//*********************************************************************************************//
//*** The mainSequence produces a new long integer from the Interval operator every sec. ***//
//*********************************************************************************************//
var mainSequence = Observable.Interval(TimeSpan.FromSeconds(1));
//*********************************************************************************************//
//*** This LINQ statement uses the Where operator to filter the integers in the sequence so ***//
//*** that only the even integers are returned. ***//
//*** ***//
//*** you could also call the method explicitly. For example... ***//
//*** ***//
//*** var seqWhereEven = mainSequence.Where(x => x % 2 == 0); ***//
//*** ***//
//*********************************************************************************************//
var seqWhereEven = from i in mainSequence
where i % 2 == 0
select i;
//*********************************************************************************************//
//*** Create a subscription and write each of the even integers to the console window. ***//
//*********************************************************************************************//
seqWhereEven.Subscribe(x => Console.WriteLine(x));
Console.ReadLine();
}
}
}
다음 출력은 예제 코드에 의해 생성되었습니다.
0
2
4
6
8
10
12
14
16