2012-03-05 4 views
5

IQueryable 수식에서 사전의 사전을 반환하는 방법을 싶습니다. 일반적으로,사전 IQueryable에서 사전

Dictionary<int, Dictionary<DateTime, string>> 

은 처음에는 물론 ToDictionary() 보았지만, 다른 후 2 일을 선언 할 수있는 방법을 찾을 수 없습니다.

다음 ToLookup()에서 loooked 및 내 보조 사전 (DateTime.Tostring() + 다른 문자열)되는 문자열로 ILookup 함께 수행하는 방법이 ... ... 따라?

return this.ttdc.Trackers.GroupBy(t => new { TrackerTaskId = t.TrackerTaskID, DateGenerated = t.TrackerDateGenerated }) 
        .Select(t => new { taskId = t.Key.TrackerTaskId, DateGenerated = t.Key.DateGenerated, count = t.Count() }) 
        .ToLookup(k => k.taskId.Value, k => k.DateGenerated.Value.ToString() + "|" + k.count); 
뭔가를 줄 것 즉, - : 하지만 난 정말 편하지 iLookup으로 용액 (> 최신 문자열 .. beuark 문자열로 날짜를 구문 분석하고 내가 데이터를 수신 할 때를) 찾을 수 없습니다

이제 속성으로 필요한 3 가지 정보가 포함 된 자체 생성 클래스 목록을 작성하려고합니다.

최고의 패턴을 선택하는 데 도움을 줄 수 있습니까? 이 방법은 Windows 서비스에서 호스팅되며 클라이언트로 전송되는 데이터의 양을 제한하고 싶습니다.

답변

4

여기 GroupByToDictionary를 사용하는 예입니다 감사합니다 돕는 일

var testValues = new[]{new {ID = 1, Date = new DateTime(2010,1,1), Str = "Val1"}, 
         new {ID = 1, Date = new DateTime(2011,2,2), Str = "Val2"}, 
         new {ID = 2, Date = new DateTime(2010,1,1), Str = "Val3"}}; 
var dict = testValues.GroupBy(item => item.ID) 
        .ToDictionary(grp => grp.Key, 
            grp => grp.ToDictionary(item => item.Date, 
                  item => item.Str)); 
+0

, 덕분에 ... 내가 전에이 시도하지에 조금 부끄러워 경우에도 마찬가지입니다. – Gloups