Задать вопрос
motkot
@motkot
Программирование C#.

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

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

Brawler RandomBrawler = null;

RandomBrawler = player.PlayerBrawlers.FirstOrDefault(item => item.Level >= 7 && item.Starpowers.Any(x => x.Have == false));
  • Вопрос задан
  • 46 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 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);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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