madaxe2020
Well-known member
- Joined
- Sep 7, 2020
- Messages
- 50
- Programming Experience
- 5-10
How can i expand the linq query to create additional levels of grouped data.
thanks
Madaxe
thanks
Madaxe
Linq Query:
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
List<SignInReport> SignInReports = new List<SignInReport>();
SignInReports.Add(new SignInReport { UserName = "Bob", EventName = "SignIn", EventTime = new DateTime(2020,1,18,6,0,0) });
SignInReports.Add(new SignInReport { UserName = "Bob", EventName = "SignOut", EventTime = new DateTime(2020, 1, 18, 10, 0, 0) });
SignInReports.Add(new SignInReport { UserName = "Bob", EventName = "SignIn", EventTime = new DateTime(2020, 1, 18, 11, 30, 0) });
SignInReports.Add(new SignInReport { UserName = "Bob", EventName = "SignOut", EventTime = new DateTime(2020, 1, 18, 16, 30, 0) });
SignInReports.Add(new SignInReport { UserName = "Charlie", EventName = "SignIn", EventTime = new DateTime(2020, 1, 18, 6, 0, 0) });
SignInReports.Add(new SignInReport { UserName = "Charlie", EventName = "SignOut", EventTime = new DateTime(2020, 1, 18, 15, 30, 0) });
SignInReports.Add(new SignInReport { UserName = "Charlie", EventName = "SignIn", EventTime = new DateTime(2020, 1, 19, 6, 30, 0) });
SignInReports.Add(new SignInReport { UserName = "Charlie", EventName = "SignOut", EventTime = new DateTime(2020, 1, 19, 17, 45, 0) });
IEnumerable<SignInReportGrouping> SignInData = SignInReports.GroupBy(u => u.UserName)
.Select(group => new SignInReportGrouping { UserName = group.Key,
SignInReports = group.ToList() })
.ToList();
}
}
public class SignInReport
{
public string UserName { get; set; }
public string EventName { get; set; }
public DateTime EventTime { get; set; }
}
public class SignInReportGrouping
{
public string UserName { get; set; }
public IEnumerable<SignInReportDay> SignInReportDay { get; set; }
}
public class SignInReportDay
{
public IEnumerable<SignInReport> SignInReports { get; set; }
}
}