2013-06-07 8 views
5

シーケンスの整数を値Aから値Bにしたいと考えています。C#:最小から最大までのシーケンス

たとえば、A=3および。今度は、ループなしで、1行のコードでシーケンス3,4,5,6,7,8,9を作成します。私はEnumerable.Rangeで遊んだが、うまくいく解決策は見つけられなかった。

アイデアはありますか?

+6

答えがすべてEnumerable.Rangeを使用する可能性があることを考えれば、あなたがすでに試したことを示して、何が起こったのか本当に助けになりました。 –

+2

@Marc&Ilya、それはちょうどあなたが選んだ簡単なポイントの*ロット*です。 –

答えて

21
var sequence = Enumerable.Range(min, max - min + 1); 

for(int i = min; i <= max ; i++) { // note inclusive of both min and max 
    // good old-fashioned honest loops; they still work! who knew! 
} 
16
int A = 3; 
int B = 9; 
var seq = Enumerable.Range(A, B - A + 1); 

Console.WriteLine(string.Join(", ", seq)); //prints 3, 4, 5, 6, 7, 8, 9 

あなたは数字のとてもたくさんを持っており、その処理の性質が(ストリーミングされている場合は、ハンドル:個人的に、私はまだループを使用するように誘惑されるだろう - 、しかし情報については

1回に1つのアイテム)、アレイ経由ですべてのメモリを保持する必要はなく、IEnumerable<T>インターフェイス経由でそれらを使用するのが快適です。

関連する問題