【问题标题】:IQueryable concat causes order to be ignoredIQueryable concat 导致订单被忽略
【发布时间】:2019-03-15 13:28:43
【问题描述】:

我订购了两个IQueryable

var stickyMessages = GetStickyMessages(binUser, filterModel, messages);
var nonSticky = GetNonStickyMessages(binUser, messages);

我想做的是将它们合并为一个IQueryable,保持两者的原始顺序不变。

问题是如果我像这样使用Concat,那么订单会以某种方式被忽略:

var messagesCombined = stickyMessages.Concat(stickyMessages);
return messagesCombined;

如果我简单地返回nonStickystickMessages,则订单保持不变。我不知道为什么会这样。

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    因为在连接两个可枚举之后,结果无论如何都不是按顺序排列的,这就是为什么大多数 IQueryable“翻译器”在连接之前忽略排序的原因。您必须在连接它们之后重新声明顺序。

    另见Order by does not work with Concat() in LINQ

    【讨论】:

      猜你喜欢
      • 2014-04-11
      • 2015-03-27
      • 2011-03-28
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多