为什么linq中的orderby方法不起作用?

为什么linq中的orderby方法不起作用?,linq,Linq,我想在名为ZipTable的数据表中查询不同的状态名,并使用alpha-beta顺序列出状态名,但它不起作用。我错过什么了吗 public List<String> GetAllStates() { ZipTableDataContext dc = new ZipTableDataContext(_connString); List<String> query = (from z in dc.ZipTables

我想在名为
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;
}
public List GetAllStates()
{
ZipTableDataContext dc=新的ZipTableDataContext(_connString);
列表查询=(从dc.ZipTables中的z开始)
orderby z.State
选择z.State).Distinct().ToList();
返回查询;
}
调用
Distinct()
将撤消您的排序,因为它不会保留输入序列顺序。在调用
Distinct()
之后,您需要执行
OrderBy

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

它不起作用,该表有多个列,而不仅仅是状态列。@Steven Zack:编辑以更正。。。现在应该可以了。(很抱歉,我稍微误读了原文)这行“orderby z.State”不起作用。还是按原来的顺序。