2011-07-25 56 views
2

我想查詢名爲ZipTable的數據表中的不同狀態名稱,並使用alpha-beta命令列出狀態名稱,但它不起作用。我錯過了什麼?爲什麼我在linq中的orderby方法不起作用?

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; 
} 
+1

它不起作用* how *? – Jon

+0

這行「order by z.State」不起作用。仍然是它的原始序列。 –

回答

7

Distinct()的調用將撤銷您的排序,因爲它不保留輸入序列順序。您需要在撥打Distinct()後執行您的OrderBy

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

它不起作用蘆葦,表有多列,不只是國家列。 –

+0

@Steven Zack:編輯糾正...這應該現在就工作。 (對不起 - 原來有點誤讀) –

+0

非常感謝!它完美的作品。 –

相關問題