var groupsByType = (from SPListItem n in notifications group n by n[C.DPRequestsQueueNotifications.NotificationType] into groupByType let groupsBySubject = from n in groupByType group n by n[C.DPRequestsQueueNotifications.Title] into groupBySubject select groupBySubject select groupsBySubject).ToList(); foreach (var groupByType in groupsByType) { foreach (var groupBySubject in groupByType) { foreach (SPListItem item in groupBySubject) { // TODO } } }