/// <summary> /// Narrows an enumerable to a segment. Boundaries are included. /// </summary> public static IReadonlyReversibleCollection <TPayload> Narrow <TPayload>( this IReversibleEnumerable <TPayload> enumerable, TPayload lowerBoundary, TPayload higherBoundary) => new NarrowedReadonlyReversibleCollectionAdapter <TPayload>( enumerable, lowerBoundary, higherBoundary);
public NarrowedReadonlyReversibleCollectionAdapter( IReversibleEnumerable <TPayload> decorated, TPayload lowerBoundary, TPayload upperBoundary) { _decorated = decorated; _isLowerBoundary = payload => lowerBoundary.Equals(payload); _isUpperBoundary = payload => upperBoundary.Equals(payload); }