LINQ-let子句、join子句

1.Let子句

  let子句用于在LINQ表达式中存储子表达式的计算结果,既let子句创建一个范围变量来存储结果,变量被创建后,不能修改或把其他表达式的结果重新赋值给它。此范围变量可以在后续的LINQ中使用

   

 static void Main(string[] args)
        {


            //数据源
            List<Custom> my = new List<Custom>()
            {
                new Custom() {name="杜伟",Age=30,Table="13166856811" },
                new Custom() { name="王玥",Age=33,Table="1259445545"}
            };

            var query = from a in my
                        //这里面的g存储的是杜和王
                        let g = a.name.Substring(0, 1)
                       
                        //select g;
                        select a;

            foreach (var item in query)
            {
                Console.WriteLine("姓名{0},姓名{1},电话{2}",item.name,item.Age,item.Table);
                //Console.WriteLine(item);

            }
            Console.ReadKey();
        }
//where customer.Name.Substring(0, 1) == "郭" || customer.Name.Substring(0, 1) =="黄"

2.Join子句

  Join子句用来连接两个数据源,即设置两个数据源之间的关系,join子句支持一下3中常见连接方式。

    内部连接:要求两个数据源都必须存在相同的值,即两个数据源必须存在满足连接关系的元素,类似于SQL语句中的inner Join 子句。

    分组连接:包含into子句的join子句。

    左外部连接:元素的连接关系必须满足连接中的左数据源,类似于SQL语句中的left Join子句。

  实例:

  

static void Main(string[] args)
        {
            //定义两个数据源
            int[] arr = { 0,1,2,3,4,5,6,7,8,9};
            int[] arr1 = {2,4,6,8 };

            var quey = from a in arr
                       //内连接。根SQL一样 只是多了一个equals(相等,同样的)
                       join b in arr1 on a equals b
                       where a > 7
                       select a;

            foreach (var item in quey)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
                
        }

 

      

 

转载于:https://www.cnblogs.com/xiaowie/p/9448447.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值