Linq学习(join)

 //学生类
    public class Stu
    {
        public int ID { set; get; } //学生的编号
        public string Name { set; get; } //学生的姓名
        public int CourseId { set; get; } //学生所选课程的id
    }
    //课程类
    public class Course
    {
        public int ID { set; get; } //课程的编号
        public string Cname { set; get; }//课程的名称

    }

 protected void Page_Load(object sender, EventArgs e)
        {
            List<Stu> list = new List<Stu> {
                
                new Stu { ID = 1001, Name = "zhangsan", CourseId=1},
                new Stu{ID=1002,Name="lisi", CourseId=2},
                new Stu{ID=1003,Name="wangwu", CourseId=3},
                 new Stu{ID=1004,Name="zhouliu", CourseId=1}
            
            };

            List<Course> clist = new List<Course>{
                 new Course{ ID=1,Cname="php"},
                 new Course{ID=3,Cname=".net"}
            };


        //  1.内部联接


            var query = from a in list
                        join b in clist
                        on a.CourseId equals b.ID    //根据学生所选的课程id,得到学生所选课程的名称
                        select new { a.Name, b.Cname };
            foreach (var item in query)
            {
                Response.Write("姓名: "+item.Name+"   课程: "+item.Cname+"<br/>");
            }

              // 结果:
             //姓名: zhangsan 课程: php
            //姓名: wangwu 课程: .net
            //姓名: zhouliu 课程: php


        }

            //类似于sql中右连接查询
            var query = from a in list
                        join b in clist
                        on a.CourseId equals b.ID into hh
                        select new
                        {
                            sname = a.Name,
                            cname = hh
                        };
            foreach (var item in query)
            {
                Response.Write(item.sname + " :");
                foreach (var s in item.cname)
                {
                    Response.Write(s.Cname + ",");
                }
                Response.Write("<br/>");

            }
            //结果:
            //zhangsan :php,
            //lisi :
            //wangwu :.net,
            //zhouliu :php,


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值