ScanRightExtension.ScanRight<TSource, TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TSource, TAccumulate, TAccumulate>) Method
Namespace: MoreLinq.ExtensionsAssembly: MoreLinq (in MoreLinq.dll) Version: 3.4.0+b99a6a8cc504caf2d48372fe54a2f8116c59cd0c
public static IEnumerable<TAccumulate> ScanRight<TSource, TAccumulate>(
this IEnumerable<TSource> source,
TAccumulate seed,
Func<TSource, TAccumulate, TAccumulate> func
)
<ExtensionAttribute>
Public Shared Function ScanRight(Of TSource, TAccumulate) (
source As IEnumerable(Of TSource),
seed As TAccumulate,
func As Func(Of TSource, TAccumulate, TAccumulate)
) As IEnumerable(Of TAccumulate)
public:
[ExtensionAttribute]
generic<typename TSource, typename TAccumulate>
static IEnumerable<TAccumulate>^ ScanRight(
IEnumerable<TSource>^ source,
TAccumulate seed,
Func<TSource, TAccumulate, TAccumulate>^ func
)
[<ExtensionAttribute>]
static member ScanRight :
source : IEnumerable<'TSource> *
seed : 'TAccumulate *
func : Func<'TSource, 'TAccumulate, 'TAccumulate> -> IEnumerable<'TAccumulate>
- source IEnumerable<TSource>
- Source sequence.
- seed TAccumulate
- The initial accumulator value.
- func Func<TSource, TAccumulate, TAccumulate>
- A right-associative accumulator function to be invoked on each element.
- TSource
- The type of the elements of source.
- TAccumulate
- The type of the accumulator value.
IEnumerable<TAccumulate>The scanned sequence.In Visual Basic and C#, you can call this method as an instance method on any object of type
IEnumerable<TSource>. When you use instance method syntax to call this method, omit the first parameter. For more information, see
Extension Methods (Visual Basic) or
Extension Methods (C# Programming Guide).
This operator uses deferred execution and streams its results.
Source sequence is consumed greedily when an iteration of the resulting sequence begins.
var result = Enumerable.Range(1, 4).ScanRight("5", (a, b) => $"({a}+{b})");
The
result variable will contain
[ "(1+(2+(3+(4+5))))", "(2+(3+(4+5)))", "(3+(4+5))", "(4+5)", "5" ].