Partager via


Observable.ToEnumerable<TSource,> méthode

Convertit une séquence observable en séquence énumérable.

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

Syntaxe

'Declaration
<ExtensionAttribute> _
Public Shared Function ToEnumerable(Of TSource) ( _
    source As IObservable(Of TSource) _
) As IEnumerable(Of TSource)
'Usage
Dim source As IObservable(Of TSource)
Dim returnValue As IEnumerable(Of TSource)

returnValue = source.ToEnumerable()
public static IEnumerable<TSource> ToEnumerable<TSource>(
    this IObservable<TSource> source
)
[ExtensionAttribute]
public:
generic<typename TSource>
static IEnumerable<TSource>^ ToEnumerable(
    IObservable<TSource>^ source
)
static member ToEnumerable : 
        source:IObservable<'TSource> -> IEnumerable<'TSource> 
JScript does not support generic types and methods.

Paramètres de type

  • TSource
    Type de la source.

Paramètres

  • source
    Type : System.IObservable<TSource>
    Séquence observable à convertir en séquence énumérable.

Valeur de retour

Type : System.Collections.Generic.IEnumerable<TSource>
Séquence énumérable contenant les éléments de la séquence observable.

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 ToEnumerator retourne un énumérateur à partir d’une séquence observable. L’énumérateur génère chaque élément de la séquence au fur et à mesure de sa production.

Exemples

L’exemple suivant crée une séquence observable des entiers. Un nouvel entier est produit dans la séquence toutes les secondes par l’opérateur Interval. La séquence observable est convertie en énumérateur et chaque élément est écrit dans la fenêtre de console au fur et à mesure de sa production.

using System;
using System.Reactive.Linq;
using System.Threading.Tasks;

namespace Example
{
  class Program
  {
    static void Main()
    {
      //******************************************************//
      //*** Create an observable sequence of integers.     ***//
      //******************************************************//

      var obs = Observable.Interval(TimeSpan.FromSeconds(1));
  

      //*******************************************************//
      //*** Convert the integer sequence to an enumerable.  ***//
      //*******************************************************//

      var intEnumerable = obs.ToEnumerable();


      //*********************************************************************************************//
      //*** Create a task to enumerate the items in the list on a worker thread to allow the main ***//
      //*** thread to process the user's ENTER key press.                                         ***//
      //*********************************************************************************************//

      Task.Factory.StartNew(() =>
      {
        foreach (int val in intEnumerable)
        {
          Console.WriteLine(val);
        }
      });


      //*********************************************************************************************//
      //*** Main thread waiting on the user's ENTER key press.                                    ***//
      //*********************************************************************************************//

      Console.WriteLine("\nPress ENTER to exit...\n");
      Console.ReadLine();
    }
  }
}

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

 
Press ENTER to exit...

0
1
2
3
4
5
6
7
8
9

Voir aussi

Référence

Observable, classe

Espace de noms System.Reactive.Linq