ScanRightExtension.ScanRight<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) Method
Namespace: MoreLinq.ExtensionsAssembly: MoreLinq (in MoreLinq.dll) Version: 3.4.0+b99a6a8cc504caf2d48372fe54a2f8116c59cd0c
public static IEnumerable<TSource> ScanRight<TSource>(
this IEnumerable<TSource> source,
Func<TSource, TSource, TSource> func
)
<ExtensionAttribute>
Public Shared Function ScanRight(Of TSource) (
source As IEnumerable(Of TSource),
func As Func(Of TSource, TSource, TSource)
) As IEnumerable(Of TSource)
public:
[ExtensionAttribute]
generic<typename TSource>
static IEnumerable<TSource>^ ScanRight(
IEnumerable<TSource>^ source,
Func<TSource, TSource, TSource>^ func
)
[<ExtensionAttribute>]
static member ScanRight :
source : IEnumerable<'TSource> *
func : Func<'TSource, 'TSource, 'TSource> -> IEnumerable<'TSource>
- source IEnumerable<TSource>
- Source sequence.
- func Func<TSource, TSource, TSource>
-
A right-associative accumulator function to be invoked on each element.
Its first argument is the current value in the sequence; second argument is the previous accumulator value.
- TSource
- Type of elements in source sequence.
IEnumerable<TSource>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, 5).Select(i => i.ToString()).ScanRight((a, b) => $"({a}+{b})");
The
result variable will contain
[ "(1+(2+(3+(4+5))))", "(2+(3+(4+5)))", "(3+(4+5))", "(4+5)", "5" ].