Table of Contents

Class FlowExtensions

Namespace
PatternKit.Behavioral.Iterator
Assembly
PatternKit.Core.dll

Helper extensions for flow composition sugar / interop.

public static class FlowExtensions
Inheritance
FlowExtensions
Inherited Members

Methods

FirstOption<T>(Flow<T>)

Convert flow to Option<T> (first element).

public static Option<T> FirstOption<T>(this Flow<T> flow)

Parameters

flow Flow<T>

Returns

Option<T>

Type Parameters

T

FirstOrDefault<T>(Flow<T>, Func<T, bool>?)

Return the first value or default.

public static T? FirstOrDefault<T>(this Flow<T> flow, Func<T, bool>? predicate = null)

Parameters

flow Flow<T>
predicate Func<T, bool>

Returns

T

Type Parameters

T

Fold<T, TAcc>(Flow<T>, TAcc, Func<TAcc, T, TAcc>)

Terminal reduce (aggregate) that folds the sequence into a single value.

public static TAcc Fold<T, TAcc>(this Flow<T> flow, TAcc seed, Func<TAcc, T, TAcc> folder)

Parameters

flow Flow<T>
seed TAcc
folder Func<TAcc, T, TAcc>

Returns

TAcc

Type Parameters

T
TAcc

Fold<T, TAcc>(SharedFlow<T>, TAcc, Func<TAcc, T, TAcc>)

Fold for a shared flow (fork first so the enumeration does not interfere with other consumers).

public static TAcc Fold<T, TAcc>(this SharedFlow<T> flow, TAcc seed, Func<TAcc, T, TAcc> folder)

Parameters

flow SharedFlow<T>
seed TAcc
folder Func<TAcc, T, TAcc>

Returns

TAcc

Type Parameters

T
TAcc