为什么我的顺序方法在linq不工作

  • 本文关键字:linq 工作 方法 顺序 linq
  • 更新时间 :
  • 英文 :


我想在一个名为ZipTable的数据表中查询不同的州名,并使用alpha-beta顺序列出州名,但它不起作用。我错过什么了吗?

public List<String> GetAllStates()
{
    ZipTableDataContext dc = new ZipTableDataContext(_connString);
    List<String> query = (from z in dc.ZipTables
                          orderby z.State
                          select z.State).Distinct().ToList();
    return query;
}

调用Distinct()将撤销您的排序,因为它不保留输入序列的顺序。您需要在Distinct()调用之后执行OrderBy:

List<String> query = dc.ZipTables.Select(z => z.State)
                       .Distinct()
                       .OrderBy(s => s)
                       .ToList();

最新更新