web-dev-qa-db-ja.com

一連の数字を生成する

Asp.netmvc2でシーケンス番号を作成したい。

次に、番号は{ 0 to 1000}から始まる必要があります。私は次のように試しました、

 var seq = Enumerable.Range(1, 1000);
        ViewData["OrderNo"] = seq;

ビュー内:

 <%:Html.Hidden("OrderNo") %>
            <%:ViewData["OrderNo"] %>  

私の結果は

System.Linq.Enumerable+<RangeIterator>d__b8

しかし、ビューで値を取得するとき、それは機能していません...連番を生成する方法は?

9
PoliDev

_IEnumerable<int>_から変数endまでの一連の数値(_0_)を列挙する場合は、試してください。

_Enumerable.Range(0, ++end);
_

説明では、0から1000までの数字のシーケンスを取得するには、シーケンスを0から開始する必要があります(0から1000までの間に1001個の数字があることに注意してください)。


無制限の線形系列が必要な場合は、次のような関数を記述できます。

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

あなたが好きなように使うことができます

_var ZeroTo1000 = Series().Take(1001);
_

繰り返し呼び出して増分番号を生成できる関数が必要な場合は、次のようなものが必要になる可能性があります。

_using System.Threading;

private static int orderNumber = 0;

int Seq()
{
    return Interlocked.Increment(ref orderNumber);
}
_

Seq()を呼び出すと、次の注文番号が返され、カウンターがインクリメントされます。

24
Jodrell