Убрать повторяющиеся значения

В данном куске кода должно выводить текст с рандомным числом - это он выполняет.

public void FreePlace()
        {
            var rnd = new Random();
            rnd.Next(1, 5);
            int fp = 0;
            for (int i = 1; i < rnd.Next(1, 5); i++) {
                fp = rnd.Next(1, 5);

                Console.WriteLine($"Свободно место: №{fp}");
            }
        }

Единственное что не могу понять - как сделать, чтобы не выводились повторные значения. Например, вот: выводятся дважды строки "Свободное место: #2".

Предполагаю, что требуется что-то подобное Distinct()?


Ответы (1 шт):

Автор решения: tym32167

Попробуйте это

var rnd = new Random();
foreach (var fp in Enumerable.Range(1, 5).OrderBy(x => rnd.Next()))
    Console.WriteLine($"Свободно место: №{fp}");

И не забудьте, что Random лучше созать один раз и переиспользовать.

Вывод

Свободно место: №4
Свободно место: №3
Свободно место: №5
Свободно место: №2
Свободно место: №1
→ Ссылка