В Python я могу это сделать:
>>> import random
>>> ints = [1,2,3]
>>> random.choice(ints)
3
В С# первое, что я сделал, это:
var randgen = new Random();
var ints = new int[] { 1, 2, 3 };
ints[randgen.Next(ints.Length)];
Но для этого требуется индексирование, меня беспокоит дублирование ints
. Итак, я придумал это:
var randgen = new Random();
var ints = new int[] { 1, 2, 3 };
ints.OrderBy(x=> randgen.Next()).First();
Все еще не очень приятно и эффективно. Есть ли более элегантный способ получения случайного значения из IEnumberable?