Самый простой способ (но медленный для больших списков) - использовать контейнер с изменяемыми размерами, например List
, и удалить элемент после его выбора.Например:
var names = new List<string> { "image1.png", "image2.png", "image3.png", "image4.png", "image5.png" };
int index = random.Next(names.Count);
var name = names[index];
names.RemoveAt(index);
return name;
Когда ваш список пуст, все значения были выбраны.
Более быстрый способ (особенно если ваш список длинный) - использовать алгоритм перетасовки в вашем списке.Затем вы можете вывести значения по одному.Это было бы быстрее, потому что удаление с конца List
обычно намного быстрее, чем удаление с середины.Что касается перетасовки, вы можете взглянуть на этот вопрос для более подробной информации.