我在表中查询不同的列条目:
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();
这毫无作用。
因为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;