Observable.ToList < TSource > 方法
從可觀察的序列建立清單。
Namespace:System.Reactive.Linq
裝配: System.Reactive.dll) 中的 System.Reactive (
Syntax
'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.
類型參數
- TSource
來源的類型。
參數
- source
類型:System.IObservable< TSource>
要為其取得專案清單的來源可觀察序列。
傳回值
類型:System.IObservable<IList< TSource>>
可觀察序列的清單。
使用注意事項
在 Visual Basic 和 C# 中,您可以在IObservable< TSource > 類型的任何物件上呼叫這個方法作為實例方法。 使用執行個體方法語法呼叫這個方法時,請省略第一個參數。 如需詳細資訊,請參閱 或 。
備註
ToList 運算子會接受序列中的所有專案,並將其放在清單中。 然後,清單會以可觀察序列的形式傳回, (IObservable < IList < TSource >>) 。 這個運算子的傳回值與 IEnumerable 上的對應運算子不同,以便保留非同步行為。
範例
下列範例會使用 Generate 運算子來產生 (1-10) 的簡單整數序列。 然後,ToList 運算子會用來將該序列轉換成清單。 IList.Add 方法用於 9999 到產生的清單,然後再將清單中的每個專案寫入主控台視窗。
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();
}
}
}
下列輸出是使用範例程式碼所產生。
1
2
3
4
5
6
7
8
9
10
9999
Press ENTER to exit...