シーケンスの整数を値Aから値Bにしたいと考えています。C#:最小から最大までのシーケンス
たとえば、A=3
および。今度は、ループなしで、1行のコードでシーケンス3,4,5,6,7,8,9
を作成します。私はEnumerable.Range
で遊んだが、うまくいく解決策は見つけられなかった。
アイデアはありますか?
シーケンスの整数を値Aから値Bにしたいと考えています。C#:最小から最大までのシーケンス
たとえば、A=3
および。今度は、ループなしで、1行のコードでシーケンス3,4,5,6,7,8,9
を作成します。私はEnumerable.Range
で遊んだが、うまくいく解決策は見つけられなかった。
アイデアはありますか?
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!
}
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>
インターフェイス経由でそれらを使用するのが快適です。
答えがすべてEnumerable.Rangeを使用する可能性があることを考えれば、あなたがすでに試したことを示して、何が起こったのか本当に助けになりました。 –
@Marc&Ilya、それはちょうどあなたが選んだ簡単なポイントの*ロット*です。 –