c# - Transforming into another object using LINQ Grouping -
i have list of exams has happened on particular time, , mark obtained pupil exam contained in object below:
class exam { public datetime? datetime { get; set; } public double? mark { get; set; } public string pupil { get; set; } public int age { get; set; } } i need transform format display purposes using next structure:
class examviewmodel { public datetime? datetime { get; set; } public double? mark { get; set; } list<studentviewmodel> students { get; set; } } class studentviewmodel { public string pupil { get; set; } public int age { get; set; } } class resultviewmodel { list<examviewmodel> exams { get; set; } } basically want ot display exam has taken place @ particuar date, , total marks achieved in pupil (s1 = 10, s2 = 20, total = 30 @ 19/06/2014). students should transformed pupil viewmodel can see students have attended exam. how can using linq?
thanks, -mike
note: using .net4
tried:
exams.orderby(x=>x.datetime) .groupby(x => x.datetime, x=> x, (d, students) => new{date= x, students = students.tolist()} ); but cant total of marks..:(
it's cleaner imho utilize groupby subsequent select instead of using overload of groupby includes projection:
var query = exams.groupby(x => x.datetime) .select(g => new { date = g.key, totalmarks = g.sum(s => s.mark) } ); c# linq
No comments:
Post a Comment