c# - IQueryable concat 导致订单被忽略
问题描述
我有两个订单IQueryable
:
var stickyMessages = GetStickyMessages(binUser, filterModel, messages);
var nonSticky = GetNonStickyMessages(binUser, messages);
我想做的是将它们合二为一IQueryable
,保持两者的原始顺序不变。
问题是,如果我Concat
这样使用,那么订单会以某种方式被忽略:
var messagesCombined = stickyMessages.Concat(stickyMessages);
return messagesCombined;
如果我简单地返回nonSticky
or stickMessages
,则保持顺序。我不知道为什么会这样。
解决方案
因为在连接两个可枚举之后,结果无论如何都不按顺序排列,这就是为什么大多数 IQueryable “翻译器”在连接之前忽略排序的原因。您必须在连接它们之后重新声明顺序。
推荐阅读
- php - Reading from a text file and extracting specific data from it and then sorting it
- nginx - Kubernetes Nginx 入口图像错误/错误?
- sql - "A"."AMOUNT": invalid identifier
- spring-boot - spring boot app redirection to another controller
- aws-lambda - AWS Lambda - 解决 100% CPU 问题
- leaflet - 为什么 MarkerCluster 不起作用
- php - 如何通过 guzzle 运行 cURL
- ios - 在 HealthKit 中请求授权:为什么结果总是成功?
- linux - 使用 spark-shell 启动 spark 时出现异常:错误:未找到:值 spark
- json - 无法将丰富的消息发送到对话流上的行