2014-01-23 1 views
0

하나의 개체에 하나의 날짜 필드가 있습니다. 모든 달이 같은 달에 오는 지 확인하고 싶습니다. [달은 아무거나 될 수 있습니다.]LINQ를 사용하여 모든 날짜가 같은 달에 있는지 확인하는 방법

다음은 현재 날짜를 확인하는 예제입니다.

@Model.Events.All(d => 
    Convert.ToDateTime(d.Eventdate).Month == Convert.ToInt32(month)) 
+1

월은 일정합니다. 예를 들어, 모두 7 월의 일정인지 확인하고 있습니까? ? 또는 그들이 목표 달을 염두에두고 같은 달에 있는지 알고 싶습니까? – Maess

답변

6

사용 Enumerable.All() 순서의 모든 항목이 조건을 만족하는 경우는 확인 모델 속성을 string 속성에서 DateTime 속성으로 변경하고을 대문자로 변경해야합니다.. 정말로은 모든 곳에 문자열을 사용하고 싶지 않습니다. 최대한 빨리 DateTime으로 변환 한 다음 필요한 위치로만 문자열로 변환하십시오.

이 코드는 달이 2 개월 미만인 경우에만 적용됩니다. (즉, "이벤트가 없습니다"라는 의미입니다. 처리 방법을 고려해야합니다.)

2

그럼 당신이 사용할 수있는 뭔가 같은 :

bool allSameMonth = @Model.Events 
          .Select(x => x.EventDate.Month) 
          .Distinct() 
          .Count() < 2; 

(나는 가정의 자유를 촬영했습니다 -

@Model.Events.Where(d => 
    System.Convert.ToDateTime(d.Eventdate).Month == System.Convert.ToInt32(month)) 
0
@Model.Events.Where(d => 
    d.Eventdate.Month == DateTime.Now.Month) 
관련 문제