在C#中使用Linq或lambda从数据库中的表中获取X个随机元素

use*_*542 12 c# linq

我有一个x用户数据库,我想随机获取所有用户,然后在我的网站上写出50个用户.现在我只使用.take(50)并检索最新的50个用户.我希望它从整个表中随机抽取50个,任何想法?

这就是我的代码现在的样子:

userList = userList.OrderBy(user => -user.ID).Take(userCount).ToList();
Run Code Online (Sandbox Code Playgroud)

注意: userlist是我的所有用户列表.正如你所看到的那样,我现在正在使用lambda和一个名为userCount的变量,在那里我说明要列出多少用户!

Mik*_*eSW 27

试试这个

Random rnd = new Random();
userList = userList.OrderBy(user => rnd.Next()).Take(usercount).ToList();
Run Code Online (Sandbox Code Playgroud)

  • @AndreiV想象`OrderBy(user => user.Id)`这通过他们的ID命令用户.`OrderBy(user => rnd.Next())`这个"关联"一个随机数给每个用户,然后按这些数字排序. (4认同)