LINQ查询OrderBy不起作用

时间:2010-09-10 08:52:01

标签: c# linq sql-order-by

_db.InstellingAdressens
    .Where(l => l.GEMEENTE.Contains(gem_query))
    .OrderBy(q => q.GEMEENTE)
    .Select(q => q.GEMEENTE)
    .Distinct();

这是查询。它返回List<string>但字符串根本没有排序。为什么OrderBy没有效果?以及如何解决它?

4 个答案:

答案 0 :(得分:9)

尝试在通话结束时输入OrderBy。

_db.InstellingAdressens.
    Where(l => l.GEMEENTE.Contains(gem_query)).
    Select(q=>q.GEMEENTE).Distinct().
    OrderBy(q=>q).ToList();

答案 1 :(得分:6)

Distinct并不知道您在获得物品之前已经订购了物品,因此无法使用该知识。因此,它必须假设这些项目是无序的,因此只需要用它们做它想要的东西。

典型的实现将使用散列表,该散列表不按您通常希望排序的项排序,因此不同操作的结果是无序集。

正如其他人所建议的那样,改变你的通话顺序,最后进行排序,你应该得到你想要的。

答案 2 :(得分:1)

更改通话顺序

_db.InstellingAdressens.Where(l => l.GEMEENTE.Contains(gem_query)).Select(q=>q.GEMEENTE).Distinct().OrderBy(q=>q.GEMEENTE).ToList();

答案 3 :(得分:1)

试试这个只是按查询的最后一个命令

_db.InstellingAdressens
.Where(l => l.GEMEENTE.Contains(gem_query))
.Select(q=>q.GEMEENTE)
.Distinct()
.OrderBy(q=>q.GEMEENTE).ToList();
相关问题