I think it is not elegant to first generate a sequence of numbers, just to throw it away. These methods deliver random numbers in place (you need to pay in detail):
IEnumerable<int> GetRandomSequence(int maxNumber) { var random = new Random(); while (true) yield return random.Next(maxNumber); } IEnumerable<int> GetRandomSequence(int maxNumber, int maxCount) { return GetRandomSequence(maxNumber).Take(maxCount); } var random = new Random(); var list = GetRandomSequence(100, 10).ToList ();
And I like how I can write the same thing in F #:
let random = new Random (); let list = Seq.init (random.Next 10) (fun _ -> random.Next 100) |> List.ofSeq;
source share