2011-01-03 20 views

答えて

150

Enumerable.Range(0, 10);を使用できます。例:

var seq = Enumerable.Range(0, 10); 

MSDNページ

+38

注:これは、10の項目(9で終わる)で0から始まるシーケンスを作成します。 0 *〜* 10が必要な場合は、2番目のパラメータは11になります。実際の配列が必要で、 'IEnumerable 'ではなく、 '.ToArray()'を呼び出します。 –

15

あなたは、単純な関数を作成することができます。これは、より複雑なシーケンスのために機能します。それ以外の場合はEnumerable.Rangeが必要です。

IEnumerable<int> Sequence(int n1, int n2) 
{ 
    while (n1 <= n2) 
    { 
     yield return n1++; 
    } 
} 
+5

うわー、これは私が '収穫'の仕組みを理解できるようにした:D – v01pe

1

マイ実装:

private static IEnumerable<int> Sequence(int start, int end) 
    { 
     switch (Math.Sign(end - start)) 
     { 
      case -1: 
       while (start >= end) 
       { 
        yield return start--; 
       } 

       break; 

      case 1: 
       while (start <= end) 
       { 
        yield return start++; 
       } 

       break; 

      default: 
       yield break; 
     } 
    } 
関連する問題