Получить все числа между двумя числами случайных

Обновить

December 2018

Просмотры

2.4k раз

1

Я не уверен, если этот вопрос является уникальным, но я не мог найти ответ.

Я хочу хороший способ, чтобы получить число от 1 до 9 (в том числе 9) случайным образом в C #, и я хочу, чтобы все 9 чисел. Поэтому мне нужна функция, которая возвращает 9 чисел от 1 до 9, и мне нужно каждое число ровно один раз.

например, результат будет выглядеть следующим образом: 4,3,2,6,9,7,1,5,8

2 ответы

3

I would just do this:

var rnd = new Random();

var numbers =
    Enumerable
        .Range(1, 9)
        .OrderBy(x => rnd.Next())
        .ToArray();

An example result I got was:

example result

0

Here You Go:

public void Shuffle(List<int> list)
{
    Random random = new Random();
    for (int i = 0; i < list.Count; i++)
    {
        int k = random.Next(i + 1);
        int val = list[k];
        list[k] = list[i];
        list[i] = val;
    }
}

Usage:

List<int> list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Shuffle(list);