读书人

LINQ高手帮忙解决思路

发布时间: 2012-01-19 20:57:58 作者: rapoo

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();                }            }        } 

读书人网 >.NET

热点推荐