6

300 を超えるオブジェクトを含む IQueryable があります。

public class Detail
{
    public int Id { get; set; }
    public int CityId { get; set; }
    public bool Chosen { get; set; }
}

IQueryable<Detail> details = ...

これに逆らって、ランダムに 50 個のオブジェクトを選択するにはどうすればよいですか? これを .ToList() で変換する必要があると思いますが、ランダムな要素をどのように選択できるかわかりません。

4

6 に答える 6

3
Random rnd = new Random();
IQueryable<Detail> details = myList.OrderBy(x => rnd.Next()).Take(50);
于 2013-11-07T12:57:22.897 に答える
1
var l = new List<string>();
l.Add("A");
l.Add("B");
l.Add("C");
l.Add("D");
l.Add("E");
l.Add("F");
l.Add("G");
l.Add("H");
l.Add("I");

var random = new Random();
var nl = l.Select(i=> new {Value=i,Index = random.Next()});

var finalList = nl.OrderBy(i=>i.Index).Take(3);
foreach(var i in finalList)
{
    Console.WriteLine(i.Value);
}
于 2013-11-07T12:59:12.703 に答える