2009-11-03 3 views
3

막판에 제출 된 항목을 쿼리하는 람다 함수를 원합니다. 이것을 지정하는 방법?람다 식 TimeSpan

var items= Items.Where(i=>DateTime.Now.Subtract(i.Date)...) 

답변

6

항목 각각 날짜 속성이있는 경우, 당신은 할 수 :

DateTime startDate = DateTime.Now - new TimeSpan(0,1,0); 
var items = Items.Where(i => i.Date >= startDate); 

당신은 수학을 둘 수 있었다 Where 문으로 직접 변환하지만 recom을 얻을 수 있습니다. 각 항목에 뿌리를 박 았기 때문에 시작 시간을 유지하는 것을 선호합니다.

+0

설명 된 이유로 이것을 사용했습니다. – zsharp

8

선택지가 가지고

var items= Items.Where(i => DateTime.Now.Subtract(i.Date).TotalMinutes < 1) 

또는

var items= Items.Where(i => DateTime.Now.Subtract(i.Date).TotalSeconds <= 60) 
+1

I 두 번째 것과 같습니다. => 및 <=를 사용하여 대칭으로 나타납니다. –

5

방법에 대해 : 당신의 목록은 변수에 DateTime.Now을 절약 할 수 있습니다 포함, 그래서 모든 비교를 통해 동일합니다 얼마나 많은 항목에 따라

DateTime cutoffPoint = DateTime.Now.AddMinutes(-1); 
var items = Items.Where(i => (i.Date >= cutoffPoint)); 
+1

아마도 'DateTime.Now.AddMinutes (-1);'을 의미했을 것입니다. –

+0

네, 물론 고쳐 주셔서 고마워요. –

2
var items = Items.Where(i => DateTime.Now.Subtract(i.Date).TotalSeconds <= 60); 

..

+1

나는 항상 .Seconds가 아닌'.TotalSeconds'를 의미한다고 생각한다 - 항상 <60이 될 것이다. – configurator

+0

네, 제가 (업데이트했습니다) - 고마워요! – andyp

+0

thats 내가 만든 실수 – zsharp