2011-07-25 16 views
2

ZipTableと呼ばれるデータテーブル内の別個の状態名を照会し、状態名をリストするのにアルファベット順を使用したいが、それは機能しない。私は何か見落としてますか?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

どうすればよいですか? – Jon

+0

この行 "orderby z.State"は機能しません。まだ元のシーケンスです。 –

答えて

7

Distinct()を呼び出すと、入力シーケンスの順序が保持されないため、注文は元に戻されます。 Distinct()コールの後にOrderByを実行する必要があります。

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

Reedが動作しません。テーブルにはStateカラムだけでなく、複数のカラムがあります。 –

+0

@スティーブン・ザック:これを修正するために編集しました。これで問題はありません。 (申し訳ありませんが - オリジナルを少し間違えていた) –

+0

ありがとうございました!それは完全に動作します。 –

関連する問題