2013-02-22 1 views
0

최소 datetime을 구한 다음 최대 datetime을 구하여 두 값을 비교하려고합니다. 그러나 LINQ DateTime 값을 추출 할 때 다음 오류가 발생합니다. 어떤 도움을 주시면 감사하겠습니다.Find Min DateTime 및 DateTime을 로컬 변수에 할당

이 줄에 오류가 발생합니다. appChartDateStart = Convert.ToDateTime (dateStartType);

알란

형 객체를 전송할 수 없음 'WhereSelectEnumerableIterator 2[System.Linq.IGrouping 2 System.DateTime, LatencyApp.Domain.Models.ChartHist] <> f__AnonymousType2`1 [System.DateTime]'를 입력하려면 ' System.IConvertible '.

내 코드 : 속성 MinDateTime와 익명의 유형을 창조하고 당신의 선택 때문에

 DateTime appChartDateStart = DateTime.MinValue; 
     DateTime appChartDateEnd = DateTime.MinValue; 
     var dateStartType = from row in myRow 
           group row by row.LoginDateTime_Rounded into g 
           select new { MinDateTime = g.Min(row => row.LoginDateTime_Rounded) }; 
     var dateEndType = from row in myRow 
           group row by row.LoginDateTime_Rounded into g 
           select new { MinDateTime = g.Max(row => row.LoginDateTime_Rounded) }; 
     appChartDateStart = Convert.ToDateTime(dateStartType); 
     appChartDateEnd = Convert.ToDateTime(dateEndType); 
     TimeSpan difAppChart = appChartDateEnd - appChartDateStart; 

답변

1

을 나는 조금 청소기도 꽤 잘 작동의 LINQ의 sintax에서 그것을했고, :

DateTime appChartDateStart = DateTime.MinValue; 
DateTime appChartDateEnd = DateTime.MinValue; 

var dateStartType = myRow.GroupBy(x => x.LoginDateTime_Rounded).Select(x => x.Key).Min(); 
var dateEndType = myRow.GroupBy(x => x.LoginDateTime_Rounded).Select(x => x.Key).Max(); 

TimeSpan difAppChart = appChartDateEnd - appChartDateStart; 

완료 코드 :

 DateTime appChartDateStart = DateTime.MinValue; 
     DateTime appChartDateEnd = DateTime.MinValue; 
     if (histByApp.Count() != 0) 
     { 
      var dateStartType = histByApp.GroupBy(x => x.LoginDateTime_Rounded).Select(x => x.Key).Min(); 
      var dateEndType = histByApp.GroupBy(x => x.LoginDateTime_Rounded).Select(x => x.Key).Max(); 
      appChartDateStart = Convert.ToDateTime(dateStartType); 
      appChartDateEnd = Convert.ToDateTime(dateEndType); 
     } 
     TimeSpan difAppChart = appChartDateEnd - appChartDateStart; 
+0

감사합니다. 어떻게 최종 코드를 게시 할 수 있습니까? – ADH

+0

답을 수정하고 끝에 답을 포함 시키십시오. – RMalke

1

이잖아. Convert.TomDateTime 메서드는이 익명 형식을 변환하는 방법을 알지 못합니다. 일을보십시오 :

DateTime appChartDateStart = DateTime.MinValue; 
DateTime appChartDateEnd = DateTime.MinValue; 
var dateStartType = (from row in myRow 
         group row by row.LoginDateTime_Rounded into g 
         select new { MinDateTime = g.Min(row => row.LoginDateTime_Rounded) }).FirstOrDefault(); 
var dateEndType = (from row in myRow 
         group row by row.LoginDateTime_Rounded into g 
         select new { MinDateTime = g.Max(row => row.LoginDateTime_Rounded) }).FirstOrDefault(); 
appChartDateStart = Convert.ToDateTime(dateStartType); 
appChartDateEnd = Convert.ToDateTime(dateEndType); 
TimeSpan difAppChart = appChartDateEnd - appChartDateStart; 
+0

응답 해 주셔서 감사합니다 . 그건 나를 위해 컴파일되지 않습니다. – ADH

+0

아 맞아, 그게 하나의 컬렉션 대 단일 개체를 잊어 버렸습니다. 수정 된 코드를 사용해보십시오. – Justin

관련 문제