2012-03-22 49 views
2

我有以下的LINQ表達式從我的數據庫中提取的所有數據:的LINQ的GroupBy過濾

var items = response.Select(a => a.SessionLocationID).ToArray(); 
mdl = _meetingRepository.Select<SessionLocation>() 
    .OrderBy(a => a.SessionDT).ThenBy(a => a.SessionEndTime); 

現在我想組由現場ActualRoom只有用ActualRoom計數> 3

的那些是不是可能?

回答

6

您可以使用GroupBy,只要記住,你正在失去你已經這樣做了排序我就開始這樣做了排序前:

var groups = _meetingRepository.Select<SessionLocation>() 
           .GroupBy(x => x.ActualRoom) 
           .Where(g => g.Count() > 3) 

要有排序組 - 假設保留算作一個單獨的屬性時並不需要你可以直接投射到IEnumerable<SessionLocation>IEnumerable

var groups = _meetingRepository.Select<SessionLocation>() 
           .GroupBy(x => x.ActualRoom) 
           .Where(g => g.Count() > 3) 
           .Select(g => g.OrderBy(x => x.SessionDT).ThenBy(x => x.SessionEndTime)); 
+0

謝謝你的快速回復。我完全理解失去排序,但可以在字典中排序結果嗎? – user1286550 2012-03-22 18:16:12

+0

您希望每個組內的項目*排序? – BrokenGlass 2012-03-22 18:17:34

+0

是的。我希望每個組中的項目至少按SessionDT排序,並且如果SessionEndTime也可以排序。 – user1286550 2012-03-22 18:22:22