Método TSource> Observable.ToEnumerable<
Converte uma sequência observável em uma sequência enumerável.
Namespace:System.Reactive.Linq
Assembly: System.Reactive (em System.Reactive.dll)
Sintaxe
'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.
Parâmetros de tipo
- TSource
O tipo de fonte.
Parâmetros
- source
Tipo: System.IObservable<TSource>
Uma sequência observável a ser convertida em uma sequência enumerável.
Valor Retornado
Tipo: System.Collections.Generic.IEnumerable<TSource>
A sequência enumerável que contém os elementos na sequência observável.
Observação de uso
No Visual Basic e no C#, você pode chamar esse método como um método de instância em qualquer objeto do tipo TSource>IObservable<. Quando você usar a sintaxe de método de instância para chamar esse método, omita o primeiro parâmetro. Para obter mais informações, consulte ou .
Comentários
O operador ToEnumerator retorna um enumerador de uma sequência observável. O enumerador produzirá cada item na sequência conforme ele for produzido.
Exemplos
O exemplo a seguir cria uma sequência observável dos inteiros. Um novo inteiro é produzido na sequência a cada segundo pelo operador Interval. A sequência observável é convertida em um enumerador e cada item é gravado na janela do console conforme ele é produzido.
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();
}
}
}
A saída a seguir foi gerada com o código de exemplo.
Press ENTER to exit...
0
1
2
3
4
5
6
7
8
9