如何在 LINQ2SQL 中处理未知数量的订单
我正在使用 LINQ 来排序一些数据,但我有零个或多个要应用的 OrderBy
子句。
由于我不知道我有多少订单条款,所以我不能这样做:
var myItems = dataContext.MyItems
.OrderBy(i => i.ColumnA)
.ThenBy(i => i.ColumnB)
.ThenBy(i => i.ColumnC)
.ThenBy(i => i.ColumnD)
// etc.
从逻辑上讲,我需要类似的东西:
var myItems = dataContext.MyItems;
foreach (var orderClause in myOrderClauses)
{
myItems = myItems.SubOrderMagicallyBy(orderClause);
}
显然这是没有希望的,所以任何想法将不胜感激。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为什么它不能与
foreach
一起使用?您只需要处理第一个 order 子句的特殊情况:
这假设
myOrderClauses
的类型为IEnumerable>>
。Why doesn't it work with the
foreach
?You just need to handle the special case of the first order clause:
This assumes, that
myOrderClauses
is of typeIEnumerable<Expression<Func<TSource, TKey>>>
.