2012-01-15 21 views
21

私は何をしようとすると、乱数の値をminとmaxの間で取るランダムなint値の配列を生成します。ランダムなintの配列を作る

は、これまでのところ私は、このコードを思い付いた:

int Min = 0; 
int Max = 20; 

int[] test2 = new int[5]; 
Random randNum = new Random(); 
foreach (int value in test2) 
{ 
    randNum.Next(Min, Max); 
} 

しかし、そのはまだ完全には機能していません。 私はちょうど1行または何かが欠けているかもしれないと思う。 誰かが私を正しい方向に押し進めてくれるのを助けることができますか?

+2

実際には各繰り返しに値を割り当てているわけではありません。 –

答えて

30

test2アレイ内の値を決して割り当てないでください。

int Min = 0; 
int Max = 20; 

// this declares an integer array with 5 elements 
// and initializes all of them to their default value 
// which is zero 
int[] test2 = new int[5]; 

Random randNum = new Random(); 
for (int i = 0; i < test2.Length; i++) 
{ 
    test2[i] = randNum.Next(Min, Max); 
} 

代わりにあなたはLINQを使用できます:

int Min = 0; 
int Max = 20; 
Random randNum = new Random(); 
int[] test2 = Enumerable 
    .Repeat(0, 5) 
    .Select(i => randNum.Next(Min, Max)) 
    .ToArray(); 
+0

最初のものは私にもっと多くの誤りを与えてくれました、そして、これまでのところ私のC#の知識は約2週間前です。 2つ目は魅力のように働く。 forx that – Dante1986

0
をここでは、配列の各要素について、指定した間隔でランダムな整数を割り当てることができる方法だあなたはそれを宣言したが、すべての値が0になります。

ループ内の配列の現行インデックスにrandom.next結果を割り当てる必要があります

+2

配列に追加することはできません。それはリストです。もしあなたが 'foreach'ループでそれを行った場合、コレクションは反復処理中に変更されます。 –

+0

申し訳ありませんが、それでも間違った答えと悪い:foreachは、配列の要素にアクセスすることです、あなたはそれらの方法を実装することはできません –

+0

ああ、私は完全に元の質問のforeachループを無視されます。 – stephen776

関連する問題