按子句排序无法正常工作

本文关键字:工作 常工作 子句 排序 | 更新日期: 2023-09-27 18:36:09

LINQ- 我已经使用逐个子句的顺序升序来获取数据库中可用的所有状态,但它不起作用。这是代码:

 public List<State> GetAllStates()
    {
        List<State> p;
        p = (from a in _db.ProductImageMaps
             where a.State != "" && a.State != null
             select new State
             {
                 Name = a.State
             }).OrderBy(a=>a.Name).Distinct().ToList();
        return p;
    }

按子句排序无法正常工作

By Design Disitnct 返回源中唯一项的无序序列。

因此,当您在按子句排序后调用 Distinct 时,您将丢失所追求的序列。其次,在 Distinct 之后调用 OrderBy 对我来说更有意义,因为仅订购 Distinct 记录会更有效。

像这样做

public List<State> GetAllStates()
    {
        List<State> p;
        p = (from a in _db.ProductImageMaps
             where a.State != "" && a.State != null
             select new State
             {
                 Name = a.State
             }).Distinct().OrderBy(a=>a.Name).ToList();
        return p;
    }