motkot
@motkot
Программирование C#.

Как сделать случайный элемент в .Find/.FirstOrDefault?

Он выбирает первый по условию, но как можно выбирать случайного с такими условиями?
Можно конечно через цикл, но можно как то в одну строчку?

Brawler RandomBrawler = null;

RandomBrawler = player.PlayerBrawlers.FirstOrDefault(item => item.Level >= 7 && item.Starpowers.Any(x => x.Have == false));
  • Вопрос задан
  • 45 просмотров
Решения вопроса 3
ToArray()
и выбираешь случайный по индексу
Ответ написан
Комментировать
sarapinit
@sarapinit Куратор тега C#
Точу водой камень
var rnd = new Random();
var randomBrawler = player.PlayerBrawlers.Where(item => item.Level >= 7 && item.Starpowers.Any(x => x.Have == false)).OrderBy(x => rnd.Next()).FirstOrDefault();
Ответ написан
Комментировать
yarosroman
@yarosroman Куратор тега C#
C# the best
rnd = new Random();
count = player.PlayerBrawlers.Count;
player.PlayerBrawlers.Where(item => item.Level >= 7 && item.Starpowers.Any(x => x.Have == false)).Skip(rnd.Next(1,count-1)).Take(1);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы