Sku*_*nia 3 c# entity-framework
我有一张桌子,我试图从中获取一个随机数:
//Fruits
id | FruitName
----------------
2 | Banana
3 | Apple
4 | Orange
6 | Grape
7 | Plum
8 | Lime
10 | Kiwi
Run Code Online (Sandbox Code Playgroud)
问题是由于不一致(注意:缺少ID 1,5和9),编写以下语句将不起作用(即使写得正确):
Random.Next(someLinq.id).First(), (samelinq.id).Last())
如何从可用数字中获取随机数?
您可以简单地使用项目的计数作为最大随机数,然后按索引选择随机项目:
var random = new Random();
var items = new List<int> {2, 3, 4, 6, 7, 8, 10};
var randomItem = items[random.Next(items.Count)];
Run Code Online (Sandbox Code Playgroud)
或者,在您的情况下(并假设您获得Fruit包含Id属性的项目列表):
var items = new List<Fruit>
{
new Fruit {Id = 2, Name = "Banana"},
new Fruit {Id = 3, Name = "Apple"},
new Fruit {Id = 4, Name = "Orange"},
new Fruit {Id = 6, Name = "Grape"},
new Fruit {Id = 7, Name = "Plum"},
new Fruit {Id = 8, Name = "Lime"},
new Fruit {Id = 10, Name = "Kiwi"}
};
var random = new Random();
var randomItem = items[random.Next(items.Count)];
Console.WriteLine("Randomly chose fruit: Id = {0}, Name = {1}",
randomItem.Id, randomItem.Name);
Run Code Online (Sandbox Code Playgroud)