MoreEnumerable.Segment<T>(IEnumerable<T>, Func<T, T, Int32, Boolean>) Method

Divides a sequence into multiple sequences by using a segment detector based on the original sequence

Definition

Namespace: MoreLinq
Assembly: MoreLinq (in MoreLinq.dll) Version: 3.4.0+b99a6a8cc504caf2d48372fe54a2f8116c59cd0c
C#
public static IEnumerable<IEnumerable<T>> Segment<T>(
	this IEnumerable<T> source,
	Func<T, T, int, bool> newSegmentPredicate
)

Parameters

source  IEnumerable<T>
The sequence to segment
newSegmentPredicate  Func<T, T, Int32, Boolean>
A function, which returns true if the given current element, previous element or index indicate a new segment, and false otherwise

Type Parameters

T
The type of the elements in the sequence

Return Value

IEnumerable<IEnumerable<T>>
A sequence of segment, each of which is a portion of the original sequence

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IEnumerable<T>. 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).

Exceptions

ArgumentNullException Thrown if either source or newSegmentPredicate are null.

See Also