2017-06-04 22 views
-1

linq where節でmaxdateを取得したいと思います。私が以下のようにしようとすると、エラーが発生します。Linqクエリの最大日付の取得

var dt1 = dtCurTopSQL.AsEnumerable() 
    .Where (l => 
     l.Field<DateTime>("SAMPLE_TIME").Max() >= DateTime.Now.AddSeconds(lastxminutes)) 

エラー:

Error CS1929 'DateTime' does not contain a definition for 'Max'

+0

エラーメッセージを読んでみてください。 – SLaks

+0

@SLaksこの構文では機能しません。 –

+1

_Why?何が起こるのですか – SLaks

答えて

2

.Max()は専用のコレクションではなく、フィールド上で動作します。

あなたは全体のコレクションから、第1の最大値を計算する必要があります。

var maxDate = dtCurTopSQL.Max(r => r.Whatever); 

あなたはその後、他のクエリでその変数を使用することができます。

+0

エラーが発生しました。 'Datatableに定義が含まれていませんでした。(最大でl => l.Field ( "SAMPLE_TIME"));' –

+0

ああ; 'AsEnumerable()'が必要です。 – SLaks

+0

まだ同じ私が使用しています 'var dt1 = dtCurTopSQL.AsEnumerable() 。どこでも(l => dtCurTopSQL.Max(r => r.Field ( "SAMPLE_TIME"))> = DateTime.Now.AddSeconds(lastxminutes )) ' –

関連する問題