【发布时间】:2016-05-05 06:03:53
【问题描述】:
我正在使用 OrderBy,但我发现我必须使用 OrderBy 作为最后一种方法,否则它将不起作用。 Distinct 运算符不保证它将保持值的原始顺序,或者如果我使用 Include,它无法对子集合进行排序。
我有什么理由不应该总是最后做 Orderby 并且不用担心订单是否保留?
编辑: 一般来说,有什么原因,比如性能影响,为什么我不应该最后使用 OrderBy。如果我使用 EnityFramework 查询数据库或仅查询某个集合,则不会。
dbContext.EntityFramework.Distinct().OrderBy(o=> o.Something); // this will give me ordered result
dbContext.EntityFramework.OrderBy(o=> o.Something).Distinct().; // this will not, because Distinct doesnt preserve order.
假设我只想选择一个属性。
dbContext.EntityFramework.Select(o=> o.Selected).OrderBy(o=> o.Something);
如果我在选择一个属性后订购集合,订购会更快吗?所以在那种情况下,我应该最后使用 Order。我只是问是否有任何情况下不应该作为最后一个命令进行排序?
【问题讨论】:
-
这取决于你想要做什么......
-
请向我们展示您的代码。
标签: linq