为什么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”不起作用。还是按原来的顺序。