Skip to main content

Two more LINQ extensions in dotnet 10

8/18/2025
1 minute read

The preview 6 of dotnet 10 brings two more functions: InfiniteSequence and Sequence.

InfiniteSequence#

InfiniteSequence is a simple generator that allows you to get a sequence from a starting point via step size:

csharp
var steps = Enumerable.InfiniteSequence(0, 5)
    .Take(10)
    .ToList();

foreach (var step in steps)
{
    Console.WriteLine(step);
}

This would print 0, 5, ... 45. So be careful not to call ToList/Count and friends without Take and so on, otherwise you will be greeted by an "Out of memory" exception.

Sequence#

That is almost the same as InfiniteSequence with the difference that you can define the inclusive upper bound:

csharp
var steps = Enumerable.Sequence(0, 45, 5)
    .ToList();

foreach (var step in steps)
{
    Console.WriteLine(step);
}

The result would be the same as the InfiniteSequence.

Update 22th of August: As mentioned by MizardX in the comments: Those methods are utilizing generic math and are defined like: T: IAdditionOperators<T,T,T> so they would work with your custom objects as long as they inherit from that interface!

An error has occurred. This application may no longer respond until reloaded.Reload x