using System.Collections.Generic;
public static void Main(string[] args)
List<RawData> data = new List<RawData>();
RawData r1 = new RawData() { PrimaryColumn = 1, StudentID = 1, StrudentName = "X", CourseName = "Cse1", CourseID = "C1", CourseDuration = 2 };
RawData r2 = new RawData() { PrimaryColumn = 2, StudentID = 1, StrudentName = "X", CourseName = "Cse2", CourseID = "C2", CourseDuration = 1 };
RawData r3 = new RawData() { PrimaryColumn = 3, StudentID = 1, StrudentName = "X", CourseName = "Cse3", CourseID = "C3", CourseDuration = 3 };
RawData r4 = new RawData() { PrimaryColumn = 4, StudentID = 2, StrudentName = "Y", CourseName = "Cse1", CourseID = "C1", CourseDuration = 2 };
RawData r5 = new RawData() { PrimaryColumn = 5, StudentID = 2, StrudentName = "Y", CourseName = "Cse4", CourseID = "C4", CourseDuration = 5 };
var result = data.GroupBy(x => new { x.StudentID, x.StrudentName },
(key, group) => new Student{ StudentId = key.StudentID, StudentName = key.StrudentName, Courses = GetCourses(group)}).ToList();
foreach(var item in result)
Console.WriteLine(item.StudentId);
public static List<Course> GetCourses(IEnumerable<RawData> data)
List<Course> course = new List<Course>();
foreach(var item in data)
c.CourseDuration = item.CourseDuration;
c.CourseId = item.CourseID;
c.CourseName = item.CourseName;
public int PrimaryColumn { get; set; }
public int StudentID { get; set; }
public string StrudentName { get; set; }
public string CourseName { get; set; }
public string CourseID { get; set; }
public int CourseDuration { get; set; }
public int StudentId {get; set;}
public string StudentName { get; set; }
public List<Course> Courses {get; set;}
public string CourseId {get; set;}
public string CourseName {get; set;}
public int CourseDuration {get; set; }