【发布时间】:2017-04-14 15:08:57
【问题描述】:
需要使用 linq 随机排序,我不能使用 GUID.NewGuid(),我需要这样的东西:.OrderBy(x => "somestring")。
假设一个移动应用程序会生成一个随机字符串并调用我的 WebApi,因为我维护分页移动应用程序将发送相同的随机字符串但不同的页码,因此每次发送随机字符串的顺序应该相同但不同跳过 ... 。
这怎么可能?如果不是字符串,可能是数字或为每个 linq 查询固定的任何内容。
编辑:
这是 WebApi
[Route("GetChannels/{id}/{word}/{page}/{randomstring}")]
public IEnumerable<Channels> GetChannels(int id, string word, int page, string randomstring)
{
...
if (canPage)
{
var channels = db.Channels.Where(x => (id == 0) || (x.CategoryId == id))
.Where(q => word == "0" ||
(q.Title.Contains(word) || q.Desc.Contains(word)))
.OrderBy(x => randomstring).Skip(skip).Take(pageSize).ToList();
}
...
【问题讨论】:
-
您能在问题描述中添加一些标点符号吗?正如它目前所写的那样,目前尚不清楚您现在拥有什么、如何调用 api 以及您期望得到什么
-
我能问一下你为什么想要 GUID 吗?我认为 Jon Skeet 的答案使用 GUID
-
@SergeyBerezovskiy,我添加了更多细节
-
@farhang67
.OrderBy(x => randomstring)将返回无序序列,因为randomstring对于所有项目都是相同的。你能描述一下你想要达到的目标吗? -
@SergeyBerezovskiy 我想在每次打开应用程序时以随机顺序向移动应用程序用户显示结果,这样我就可以生成一些用于订购的字符串并将其发送到服务器,当他们分页时,应用程序将发送相同的字符串,因此排序将相同但页码不同...