80

1からxまでの整数のリストが必要です。xはユーザーが設定します。たとえば、xが以前に設定された整数であると仮定すると、forループを使用して構築できます。

List<int> iList = new List<int>();
for (int i = 1; i <= x; i++)
{
    iList.Add(i);
}

これはばかげているようです。確かに、これを行うためのよりエレガントな方法があります。たとえば、PHPの範囲メソッドのようなものです。

4

4 に答える 4

97

.Net 3.5を使用している場合は、Enumerable.Rangeが必要です。

指定された範囲内の整数のシーケンスを生成します。

于 2008-09-08T05:49:40.043 に答える
51

救助のためのLINQ:

// Adding value to existing list
var list = new List<int>();
list.AddRange(Enumerable.Range(1, x));

// Creating new list
var list = Enumerable.Range(1, x).ToList();

LINQ101の生成演算子を参照してください

于 2008-09-08T05:48:00.407 に答える
18

私は、C#3.0 を使用している場合に記述できるRuby 風のTo拡張メソッドについてブログを書いている多くの人の 1 人です。


public static class IntegerExtensions
{
    public static IEnumerable<int> To(this int first, int last)
    {
        for (int i = first; i <= last; i++)
{ yield return i; } } }

次に、このような整数のリストを作成できます

List<int> = first.To(last).ToList();

また

List<int> = 1.To(x).ToList();

于 2008-09-08T08:58:47.220 に答える