SuperLinq SuperLinq
SuperLinq SuperLinq
DocFX + Singulink = ♥

Search Results for

    Method WindowRight

    WindowRight<TSource, TResult>(IEnumerable<TSource>, int, ReadOnlySpanFunc<TSource, TResult>)

    Creates a right-aligned sliding window over the source sequence of a given size.

    Declaration
    public static IEnumerable<TResult> WindowRight<TSource, TResult>(this IEnumerable<TSource> source, int size, SuperEnumerable.ReadOnlySpanFunc<TSource, TResult> selector)
    Parameters
    Type Name Description
    IEnumerable<TSource> source

    The sequence over which to create the sliding window.

    int size

    Size of the sliding window.

    SuperEnumerable.ReadOnlySpanFunc<TSource, TResult> selector

    A transform function to apply to each window.

    Returns
    Type Description
    IEnumerable<TResult>

    A sequence representing each sliding window.

    Type Parameters
    Name Description
    TSource

    The type of the elements of source.

    TResult

    The type of the value return by selector.

    Remarks

    A window can contain fewer elements than size, especially as it slides over the start of the sequence.

    In this overload of WindowRight, a single array of length size is allocated as a buffer for all subsequences.

    This operator uses deferred execution and streams its results.

    Exceptions
    Type Condition
    ArgumentNullException

    source or selector is null.

    ArgumentOutOfRangeException

    size is below 1.

    WindowRight<TSource, TResult>(IEnumerable<TSource>, TSource[], ReadOnlySpanFunc<TSource, TResult>)

    Creates a right-aligned sliding window over the source sequence of a given size.

    Declaration
    public static IEnumerable<TResult> WindowRight<TSource, TResult>(this IEnumerable<TSource> source, TSource[] array, SuperEnumerable.ReadOnlySpanFunc<TSource, TResult> selector)
    Parameters
    Type Name Description
    IEnumerable<TSource> source

    The sequence over which to create the sliding window.

    TSource[] array

    An array to use as a buffer for each subsequence.

    SuperEnumerable.ReadOnlySpanFunc<TSource, TResult> selector

    A transform function to apply to each window.

    Returns
    Type Description
    IEnumerable<TResult>

    A sequence representing each sliding window.

    Type Parameters
    Name Description
    TSource

    The type of the elements of source.

    TResult

    The type of the value return by selector.

    Remarks

    A window can contain fewer elements than array.Length, especially as it slides over the start of the sequence.

    In this overload of WindowRight, array is used as a common buffer for all subsequences.

    This operator uses deferred execution and streams its results.

    Exceptions
    Type Condition
    ArgumentNullException

    source or selector is null.

    WindowRight<TSource, TResult>(IEnumerable<TSource>, TSource[], int, ReadOnlySpanFunc<TSource, TResult>)

    Creates a right-aligned sliding window over the source sequence of a given size.

    Declaration
    public static IEnumerable<TResult> WindowRight<TSource, TResult>(this IEnumerable<TSource> source, TSource[] array, int size, SuperEnumerable.ReadOnlySpanFunc<TSource, TResult> selector)
    Parameters
    Type Name Description
    IEnumerable<TSource> source

    The sequence over which to create the sliding window.

    TSource[] array

    An array to use as a buffer for each subsequence.

    int size

    Size of the sliding window.

    SuperEnumerable.ReadOnlySpanFunc<TSource, TResult> selector

    A transform function to apply to each window.

    Returns
    Type Description
    IEnumerable<TResult>

    A sequence representing each sliding window.

    Type Parameters
    Name Description
    TSource

    The type of the elements of source.

    TResult

    The type of the value return by selector.

    Remarks

    A window can contain fewer elements than size, especially as it slides over the start of the sequence.

    In this overload of WindowRight, array is used as a common buffer for all subsequences.
    This overload is provided to ease usage of common buffers, such as those rented from ArrayPool<T>, which may return an array larger than requested.

    This operator uses deferred execution and streams its results.

    Exceptions
    Type Condition
    ArgumentNullException

    source or selector is null.

    ArgumentOutOfRangeException

    size is below 1 or above array.Length.

    | Edit this page

    WindowRight<TSource>(IEnumerable<TSource>, int)

    Creates a right-aligned sliding window over the source sequence of a given size.

    Declaration
    public static IEnumerable<IList<TSource>> WindowRight<TSource>(this IEnumerable<TSource> source, int size)
    Parameters
    Type Name Description
    IEnumerable<TSource> source

    The sequence over which to create the sliding window.

    int size

    Size of the sliding window.

    Returns
    Type Description
    IEnumerable<IList<TSource>>

    A sequence representing each sliding window.

    Type Parameters
    Name Description
    TSource

    The type of the elements of source.

    Remarks

    A window can contain fewer elements than size, especially as it slides over the start of the sequence.

    This operator uses deferred execution and streams its results.

    Examples

    The following code example demonstrates how to generate a sliding window over a sequence using WindowRight.

    var sequence = Enumerable.Range(1, 10);
    
    // Get a sliding window over the sequence
    var result = sequence.WindowRight(3);
    
    Console.WriteLine(
        "[" + Environment.NewLine + 
        string.Join(
            ", " + Environment.NewLine,
            result.Select(c => "   [" + string.Join(", ", c) + "]")) +
        Environment.NewLine + "]");
    
    // This code produces the following output:
    // [
    //    [1],
    //    [1, 2],
    //    [1, 2, 3],
    //    [2, 3, 4],
    //    [3, 4, 5],
    //    [4, 5, 6],
    //    [5, 6, 7],
    //    [6, 7, 8],
    //    [7, 8, 9],
    //    [8, 9, 10]
    // ]
    
    Exceptions
    Type Condition
    ArgumentNullException

    source is null.

    ArgumentOutOfRangeException

    size is below 1.

    © SuperLinq Authors. All rights reserved.