Observable.Buffer<TSource, TBufferOpening, TBufferClosing> Method (IObservable<TSource>, IObservable<TBufferOpening>, Func<TBufferOpening, IObservable<TBufferClosing>>)

Indicates each element of a queryable observable sequence into consecutive non-overlapping buffers.

Namespace:  System.Reactive.Linq
Assembly:  System.Reactive (in System.Reactive.dll)

public static IObservable<IList<TSource>> Buffer<TSource, TBufferOpening, TBufferClosing>(
	this IObservable<TSource> source,
	IObservable<TBufferOpening> bufferOpenings,
	Func<TBufferOpening, IObservable<TBufferClosing>> bufferClosingSelector

Type Parameters


The type of source.


The type of observable sequence whose elements denote the opening of each produced buffer.


The type of observable sequence whose elements denote the closing of each produced buffer.


Type: System.IObservable<TSource>
The source sequence to produce buffers over.
Type: System.IObservable<TBufferOpening>
The observable sequence whose elements denote the creation of new buffers.
Type: System.Func<TBufferOpening, IObservable<TBufferClosing>>
The function invoked to define the closing of each produced buffer.

Return Value

Type: System.IObservable<IList<TSource>>
The observable sequence of buffers.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IObservable<TSource>. When you use instance method syntax to call this method, omit the first parameter. For more information, see https://msdn.microsoft.com/en-us/library/bb384936(v=vs.103).aspx or https://msdn.microsoft.com/en-us/library/bb383977(v=vs.103).aspx.