String Date = "17/3/2015"; DateTime StartDate = Convert.ToDateTime(Date); DateTime EndDate = StartDate.AddDays(7); Console.WriteLine("Report Generated From {0} to {1}",StartDate,EndDate); var Connection = from C in ApplicationInstances where (C.StartDate >= StartDate && C.StartDate < EndDate && C.Session.User != null) select new {C.Application.Name,DG = C.Session.Machine.DesktopGroup.Name}; List UD = new List(); foreach(var user in Connection.ToList().GroupBy(u=>u.DG).ToList() ) { UD.Add(new UserAndDG(user.ToList()[0].DG,user.ToList().Count)); // Console.WriteLine(user.ToList()); } Console.WriteLine(UD.ToList()); } public class UserAndDG { public string DeliveryGroup; public int UserCount; public UserAndDG(String DeliveryGroup,int UserCount){ this.DeliveryGroup = DeliveryGroup; this.UserCount = UserCount; }