Partager via


Observable.Where<TSource,> méthode (IObservable<TSource>, Func<TSource, Boolean>)

Filtre les éléments d’une séquence observable en fonction d’un prédicat.

Namespace:System.Reactive.Linq
Assemblée: System.Reactive (en System.Reactive.dll)

Syntaxe

'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.

Paramètres de type

  • TSource
    Source de type.

Paramètres

  • source
    Type : System.IObservable<TSource>
    Séquence observable dont les éléments doivent être filtrés.
  • prédicat
    Type : System.Func<TSource, Boolean>
    Fonction permettant de tester chaque élément source pour une condition.

Valeur de retour

Type : System.IObservable<TSource>
Séquence observable qui contient des éléments de la séquence d’entrée qui répondent à la condition.

Remarque sur l'utilisation

Dans Visual Basic et C#, vous pouvez appeler cette méthode en tant que méthode instance sur n’importe quel objet de type IObservable<TSource>. Lorsque vous utilisez la syntaxe des méthodes d'instance pour appeler cette méthode, omettez le premier paramètre. Pour plus d'informations, consultez ou .

Notes

L’opérateur Where vous permet de définir une fonction de prédicat pour tester chaque élément dans une séquence. Chaque élément de la séquence source qui fait retourner la fonction de prédicat false est filtré à partir de la séquence résultante.

Exemples

L’exemple suivant utilise l’opérateur Where avec une requête linQ (Language Integerated Query) pour filtrer la séquence d’entiers afin que seuls les entiers pairs soient générés pour la séquence.

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

La sortie suivante a été générée par l’exemple de code.

0
2
4
6
8
10
12
14
16

Voir aussi

Référence

Observable, classe

Where Overload

Espace de noms System.Reactive.Linq