Udostępnij za pośrednictwem


Observable.ToList<, metoda TSource>

Tworzy listę na podstawie widocznej sekwencji.

Przestrzeń nazw:System.Reactive.Linq
Zestawu: System.Reactive (w System.Reactive.dll)

Składnia

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

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

Parametry typu

  • Tsource
    Typ źródła.

Parametry

  • source
    Typ: System.IObservable<TSource>
    Obserwowana sekwencja źródłowa w celu uzyskania listy elementów.

Wartość zwracana

Typ: System.IObservable<IList<TSource>>
Lista z obserwowanej sekwencji.

Uwaga dotycząca użycia

W języku Visual Basic i C# można wywołać tę metodę jako metodę wystąpienia dla dowolnego obiektu typu IObservable<TSource>. Gdy w celu wywołania tej metody jest używana składnia metody wystąpienia, należy pominąć pierwszy parametr. Aby uzyskać więcej informacji, zobacz lub .

Uwagi

Operator ToList pobiera wszystkie elementy w sekwencji i umieszcza je na liście. Następnie lista jest zwracana jako obserwowana sekwencja (IObservable<IList<TSource>>). Wartość zwracana tego operatora różni się od odpowiedniego operatora w funkcji IEnumerable, aby zachować zachowanie asynchroniczne.

Przykłady

W poniższym przykładzie użyto operatora Generate (Generowanie) w celu wygenerowania prostej sekwencji liczb całkowitych (1–10). Następnie operator ToList służy do konwertowania tej sekwencji na listę. Metoda IList.Add jest używana do 9999 do listy wynikowej, zanim każdy element na liście zostanie zapisany w oknie konsoli.

using System;
using System.Reactive.Linq;
using System.Collections;

namespace Example
{
  class Program
  {
    static void Main()
    {
      //*********************************************//
      //*** Generate a sequence of integers 1-10  ***//
      //*********************************************//

      var obs = Observable.Generate(1,            // Initial state value
                                    x => x <= 10, // The termination condition. Terminate generation when false (the integer squared is not less than 1000)
                                    x => ++x,     // Iteration step function updates the state and returns the new state. In this case state is incremented by 1 
                                    x => x);      // Selector function determines the next resulting value in the sequence. The state of type in is squared.


      //***************************************************************************************************//
      //*** Convert the integer sequence to a list. Use the IList.Add() method to add 9999 to the list  ***//
      //***************************************************************************************************//

      var obsList = obs.ToList();

      obsList.Subscribe(x => 
      {
        x.Add(9999);

        //****************************************//
        //*** Enumerate the items in the list  ***//
        //****************************************//

        foreach (int val in x)
        {
          Console.WriteLine(val);
        }
      });

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

Następujące dane wyjściowe zostały wygenerowane przy użyciu przykładowego kodu.

1
2
3
4
5
6
7
8
9
10
9999

Press ENTER to exit...

Zobacz też

Odwołanie

Obserwowalne, klasa

Przestrzeń nazw System.Reactive.Linq