如何从可用数字中获取随机数?

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())

如何从可用数字中获取随机数?

Ruf*_*s L 7

您可以简单地使用项目的计数作为最大随机数,然后按索引选择随机项目:

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)