Sdílet prostřednictvím


Observable.ToEnumerable<TSource> – metoda

Převede pozorovatelnou sekvenci na výčtovou sekvenci.

Obor názvů:System.Reactive.Linq
Sestavení: System.Reactive (v 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.

Parametry typu

  • Tsource
    Typ zdroje.

Parametry

  • source
    Typ: System.IObservable<TSource>
    Pozorovatelná sekvence, která se má převést na výčtovou sekvenci.

Návratová hodnota

Typ: System.Collections.Generic.IEnumerable<TSource>
Výčet sekvence obsahující prvky v pozorovatelné sekvenci.

Poznámka k využití

V jazyce Visual Basic a C# můžete tuto metodu volat jako metodu instance u libovolného objektu typu IObservable<TSource>. Pokud k volání této metody použijete syntaxi metody instance, vynechejte první parametr. Další informace naleznete v tématech a .

Poznámky

ToEnumerator Operátor vrátí enumerátor z pozorovatelné sekvence. Enumerátor vrátí každou položku v sekvenci tak, jak je vytvořena.

Příklady

Následující příklad vytvoří pozorovatelnou sekvenci celých čísel. Operátor Interval vytvoří v pořadí nové celé číslo každou sekundu. Pozorovatelná sekvence je převedena na enumerátor a každá položka je zapsána do okna konzoly při jeho vytvoření.

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

Následující výstup byl vygenerován s ukázkovým kódem.

 
Press ENTER to exit...

0
1
2
3
4
5
6
7
8
9

Viz také

Reference

Pozorovatelná třída

System.Reactive.Linq – obor názvů