2011-07-25 8 views
2

ラムダ式では、オブジェクトではなく、DateTime値のリストでどのように注文しますか?例えば、私は次のクエリで最新の3つの有料の日付を取得したい:DateTimeのリストのOrderByDescendingが機能していませんか?

var hires = (from e in md.Employee 
      where e.HireDate.Year == 2011 
      select e.HireDate).Distinct(); 

//at this point hires = 
    6/3/2011 
    5/15/2011 
    6/1/2011 
    7/1/2011 

私の仮定は、私が.OrderByDescending(x => x).Take(3)を行うということでしたが、私はそうするとき、私は(2011年7月1日を得ることはありません上記の最初の3つだけ)。 OrderByDescendingが無視されているようです。

私は間違っていますか?

+0

は、あなたは私たちがしてシミュレートするためにあなたのソースデータのサンプルを表示することができますか? – mellamokb

+0

データソースの種類は?私はLINQ-To-SQLを使用してSQL ServerでEmployeesテーブルを嘲笑してくれました。 – mellamokb

+0

LLBLバグのようです。この特定のコードセットは、LLBLのLinq実装を使用していました。私は定期的なLinqで単体テストで何かを嘲笑し、それもうまくいきました。私はLLBLの人々にフォローアップします。ありがとう! –

答えて

3

注文番号&を正しい順序で区別して入れてもよろしいですか?

試してみてください。

var hires = (from e in md.Employee 
    where e.HireDate.Year == 2011 
    select e.HireDate).Distinct().OrderByDescending(e => e); 
+0

それはまさに私がやっていることです。立ち入り禁止。 –

+0

奇妙な。 Distinctの後にToList()を追加すると、それは機能します。 –

+0

@Jess - 私は、 'OrderByDescending'は列挙型全体を最初に評価する必要があると考えています。 – ChaosPandion

関連する問題