MoreEnumerable.Lag<TSource, TResult>(IEnumerable<TSource>, Int32, TSource, Func<TSource, TSource, TResult>) Method

Produces a projection of a sequence by evaluating pairs of elements separated by a negative offset.

Definition

Namespace: MoreLinq
Assembly: MoreLinq (in MoreLinq.dll) Version: 3.4.0+b99a6a8cc504caf2d48372fe54a2f8116c59cd0c
C#
public static IEnumerable<TResult> Lag<TSource, TResult>(
	this IEnumerable<TSource> source,
	int offset,
	TSource defaultLagValue,
	Func<TSource, TSource, TResult> resultSelector
)

Parameters

source  IEnumerable<TSource>
The sequence over which to evaluate lag.
offset  Int32
The offset (expressed as a positive number) by which to lag each value of the sequence.
defaultLagValue  TSource
A default value supplied for the lagged value prior to the lag offset.
resultSelector  Func<TSource, TSource, TResult>
A projection function which accepts the current and lagged items (in that order) and returns a result.

Type Parameters

TSource
The type of the elements of the source sequence.
TResult
The type of the elements of the result sequence.

Return Value

IEnumerable<TResult>
A sequence produced by projecting each element of the sequence with its lagged pairing.

Usage Note

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).

Remarks

This operator evaluates in a deferred and streaming manner.

See Also