【问题标题】:GroupBy function to order by booleanGroupBy 函数按布尔值排序
【发布时间】:2012-03-16 18:42:12
【问题描述】:

编辑

我是个傻瓜,我的控制器有错字,现在一切都好。 (这是一个非常漫长的一周)


好的,这是我不确定的。我正在考虑以不同的方式实现我想要的,但我想知道是否有办法做到这一点。

我有一个IQueryable 对象,在我的表中,我有一个bool 类型的列,并希望在表中按真/假对其进行排序。

以下是我尝试过的内容:

mQueryableObject.OrderBy(model => model.myBoolean);

这并没有给我预期的结果,正如我所期望的那样。

那么有没有办法通过布尔值(真/假)来订购IQueryable 对象(LINQ)。

我真的很感激一些见解。

【问题讨论】:

  • 你想要的是真值,然后是假值?
  • 您的预期结果是什么?您有什么错误?
  • @ShaiCohen 好吧,对于订单,它有一个 OrderByDescending 我用于其他订单,所以最终他们进入哪个订单并不重要,因为我可以改变它。
  • @JoachimIsaksson 我想将真假值分开,我以随机顺序获取它们,我不确定来自哪里。
  • 好的。你想要什么预期的结果? @Jon Skeet 的答案是问题吗?

标签: c# .net linq sorting sql-order-by


【解决方案1】:

这并没有给我预期的结果,正如我所期望的那样。

如果不知道您的期望,很难知道这里出了什么问题。也不清楚您是否真的将OrderBy 调用作为声明本身。如果是这样,那就是问题所在 - LINQ 运算符不会改变现有查询;他们返回一个 new 查询。例如,这可能就是你所需要的:

mQueryableObject = mQueryableObject.OrderBy(model => model.myBoolean);

顺便说一下,这会将false 排序在true 之前。如果你想反过来,只需使用:

mQueryableObject = mQueryableObject.OrderBy(model => !model.myBoolean);

【讨论】:

  • 我期待您所描述的内容,在假之前为真,在真之前为假,但我得到一个随机结果。那么它必须在代码中的其他地方。如果我发现问题,我会更新,我应该提供更多信息吗?
  • 接受您的回答,因为它告诉我我查询正确,并帮助我确定问题出在其他地方
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2016-02-20
  • 2014-09-06
  • 1970-01-01
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多