Trong Python, tôi có thể làm điều này:C#: Mã Elegant để có được một giá trị ngẫu nhiên từ một IEnumerable
>>> import random
>>> ints = [1,2,3]
>>> random.choice(ints)
3
Trong C#, điều đầu tiên tôi làm là:
var randgen = new Random();
var ints = new int[] { 1, 2, 3 };
ints[randgen.Next(ints.Length)];
Nhưng điều này đòi hỏi lập chỉ mục , cũng là sự trùng lặp của ints
làm phiền tôi. Vì vậy, tôi đã đưa ra điều này:
var randgen = new Random();
var ints = new int[] { 1, 2, 3 };
ints.OrderBy(x=> randgen.Next()).First();
Vẫn không đẹp và hiệu quả. Có cách nào thanh lịch hơn để nhận giá trị ngẫu nhiên từ IEnumberable không?
Giả sử bạn có nghĩa là 'IEnumerable', nhưng với câu hỏi tôi có một LOL trong số' IEnumberable' :) – Yuck
Nguồn gốc của 'IEnumerable' là gì? – Gabe
Chức năng RandomElement dường như là những gì bạn đang tìm kiếm. http://stackoverflow.com/questions/648196/random-row-from-linq-to-sql/648240#648240 –