How to create a sequence of integers in C#?

后端 未结 8 879
野的像风
野的像风 2020-11-30 02:32

F# has sequences that allows to create sequences:

seq { 0 .. 10 }

Create sequence of numbers from 0 to 10.

Is there someth

8条回答
  •  夕颜
    夕颜 (楼主)
    2020-11-30 03:29

    Originally answered here.


    If you want to enumerate a sequence of numbers (IEnumerable) from 0 to a variable end, then try

    Enumerable.Range(0, ++10);
    

    In explanation, to get a sequence of numbers from 0 to 10, you want the sequence to start at 0 (remembering that there are 11 numbers between 0 and 10, inclusive).


    If you want an unlimited linear series, you could write a function like

    IEnumerable Series(int k = 0, int n = 1, int c = 1)
    {
        while (true)
        {
            yield return k;
            k = (c * k) + n;
        }
    }
    

    which you could use like

    var ZeroTo1000 = Series().Take(11);
    

    If you want a function you can call repeatedly to generate incrementing numbers, perhaps you want somthing like.

    using System.Threading;
    
    private static int orderNumber = 0;
    
    int Seq()
    {
        return Interlocked.Increment(ref orderNumber);
    }
    

    When you call Seq() it will return the next order number and increment the counter.

提交回复
热议问题