LINQ高手帮忙解决思路

LINQ高手帮忙
班级 姓名 课程 得分
一班 张三 语文 78
一班 张三 数学 88
一班 张三 英语 98
一班 李四 语文 60
一班 李四 数学 70
一班 李四 英语 80

我想转换为:

班级 姓名 语文 数学 英语
一班 张三 78 88 98
一班 李四 60 70 80


请问用linq怎么实现?




------解决方案--------------------
C# code
  
  public class Student
    {
        public string 班级 { get; set; }

        public string 姓名 { get; set; }

        public string 课程 { get; set; }

        public int 分数 { get; set; }
    }

        private void button1_Click(object sender, EventArgs e)
        {
            List<Student> mulit = new List<Student> {
                new Student{ 班级="一班", 姓名="张雷鸣", 课程="语文", 分数 =110},
                new Student{ 班级="一班", 姓名="张雷鸣", 课程="数学", 分数=220}
            };

            var tempSet = mulit.GroupBy(s => new { s.班级, s.姓名 }).Select(c => new
            {
                班级 = c.Key.班级,
                姓名 = c.Key.姓名,
                语文 = c.Where(s => s.课程.Equals("语文")).Select(s => s.分数).Single(),
                数学 = c.Where(s => s.课程.Equals("数学")).Select(s => s.分数).Single()
            
            }).ToList();
        }

------解决方案--------------------
up
------解决方案--------------------
单纯的通过一个查询估计实现不了你说的那个结果。
如果课程的科目去确定,感觉直接通过循环来获取结果也许来的更加直接和明了
C# code

  public class Student
    {
        public string 班级 { get; set; }

        public string 姓名 { get; set; }

        public string 课程 { get; set; }

        public int 分数 { get; set; }
    }

        public void Test()
        {
            List<Student> mulit = new List<Student> {
                new Student{ 班级="一班", 姓名="张三", 课程="语文", 分数 =110},
                new Student{ 班级="一班", 姓名="张三", 课程="数学", 分数=220}
            };

            var tempSet = mulit.GroupBy(s => new { s.班级, s.姓名 }).Select(c => new
            {
                班级= c.Key.班级,
                姓名 = c.Key.姓名,
                科目集合 = c.ToList()

            }).ToList();

            foreach (var t in tempSet)
            {
                //根据需要将解析的内容存放到相应的变量中
                string info = "班级:"+t.班级;
                foreach (var s in t.科目集合)
                {
                    info = s.课程 + ":" + s.分数.ToString();
                }
            }

        }