MoreEnumerableSegmentT(IEnumerableT, FuncT, T, Int32, Boolean) Method
            Divides a sequence into multiple sequences by using a segment detector based on the original sequence
            
Namespace: MoreLinqAssembly: MoreLinq (in MoreLinq.dll) Version: 4.4.0+6d97c3b1d482f98300f4446df14742b0e3fafbec
public static IEnumerable<IEnumerable<T>> Segment<T>(
	this IEnumerable<T> source,
	Func<T, T, int, bool> newSegmentPredicate
)
<ExtensionAttribute>
Public Shared Function Segment(Of T) ( 
	source As IEnumerable(Of T),
	newSegmentPredicate As Func(Of T, T, Integer, Boolean)
) As IEnumerable(Of IEnumerable(Of T))
public:
[ExtensionAttribute]
generic<typename T>
static IEnumerable<IEnumerable<T>^>^ Segment(
	IEnumerable<T>^ source, 
	Func<T, T, int, bool>^ newSegmentPredicate
)
[<ExtensionAttribute>]
static member Segment : 
        source : IEnumerable<'T> * 
        newSegmentPredicate : Func<'T, 'T, int, bool> -> IEnumerable<IEnumerable<'T>> 
- source  IEnumerableT
- The sequence to segment
- newSegmentPredicate  FuncT, T, Int32, Boolean
- A function, which returns true if the given current element, previous element or index indicate a new segment, and false otherwise
- T
- The type of the elements in the sequence
IEnumerableIEnumerableTA sequence of segment, each of which is a portion of the original sequenceIn Visual Basic and C#, you can call this method as an instance method on any object of type 
IEnumerableT. 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).