我正在查询表中不同的列条目:
var thing = (from i in db.Items
select i.GeoName).Distinct();
这很有效。
然而,它是无序的。
是否有一种简单的方法可以对此结果集进行排序?
我试过
var thing = (from i in db.Items
orderby i.GeoName descending
select i.GeoName).Distinct();
哪个什么都没做。
答案 0 :(得分:2)
由于Distinct()
不是订单保留操作,因此您需要在调用Distinct()
后执行OrderBy 。最简单的方法是使用lambda语法:
var thing = (from i in db.Items
select i.GeoName)
.Distinct()
.OrderBy(n => n);
另一种说同样的方法是:
var thing = db.Items.Select(i => i.GeoName)
.Distinct()
.OrderBy(n => n);
或者,如果您使用查询表达式语法设置为死机:
var thing = from geoName in
(from i in db.Items
select i.GeoName)
.Distinct()
orderby geoName
select geoName;