0

数字と音という 2 つの配列があります。私のコードは以下です。ランダム ジェネレーターを使用する場合、同じ値をサウンド配列に割り当てたくありません。sound[0]、sounds[1]、sounds[3] は常に異なる値を持つ必要があります。ありがとう

string[] numbers ={ "1", "2", "3", "4", "5", "6", "7","8","9","10","11","12","13","14","15","16","17","18","19","20"};

Random r= new Random();

sounds[0] = numbers[r.Next(0, numbers.Count())];

sounds[1] = numbers[r.Next(0, numbers.Count())];

sounds[2] = numbers[r.Next(0, numbers.Count())];
4

2 に答える 2

0

シンプルなアプローチが必要で、パフォーマンスが問題にならない場合は、配列をリストに変換し、取得した各要素を削除できます。

string[] numbers ={ "1", "2", "3", "4", "5", "6", "7","8","9","10","11","12","13","14","15","16","17","18","19","20"};

List<string> remaining = new List<string>(numbers);

Random r = new Random();

for (int i = 0; i < 3; ++i)
{
    int n = r.Next(0, remaining.Count);
    sounds[i] = remaining[n];
    remaining.RemoveAt(n);
}
于 2013-07-22T13:57:26.290 に答える