Freigeben über


Observable.ToEnumerable<TSource-Methode>

Konvertiert eine beobachtbare Sequenz in eine aufzählbare Sequenz.

Namespace:System.Reactive.Linq
Versammlung: System.Reaktiv (in System.Reactive.dll)

Syntax

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

Typparameter

  • TSource
    Der Quellentyp.

Parameter

  • source
    Typ: System.IObservable<TSource>
    Eine beobachtbare Sequenz, die in eine aufzählbare Sequenz konvertiert werden soll.

Rückgabewert

Typ: System.Collections.Generic.IEnumerable<TSource>
Die aufzählbare Sequenz, die die Elemente in der beobachtbaren Sequenz enthält.

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 ToEnumerator-Operator gibt einen Enumerator aus einer beobachtbaren Sequenz zurück. Der Enumerator ergibt jedes Element in der Sequenz, während es erzeugt wird.

Beispiele

Im folgenden Beispiel wird eine beobachtbare Sequenz der ganzen Zahlen erstellt. Jede Sekunde wird vom Interval-Operator eine neue ganze Zahl in der Sequenz erzeugt. Die beobachtbare Sequenz wird in einen Enumerator konvertiert, und jedes Element wird beim Erstellen in das Konsolenfenster geschrieben.

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

Die folgende Ausgabe wurde mit dem Beispielcode generiert.

 
Press ENTER to exit...

0
1
2
3
4
5
6
7
8
9

Weitere Informationen

Verweis

Beobachtbare Klasse

System.Reactive.Linq-Namespace