zoukankan      html  css  js  c++  java
  • 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();
                    
            }

          

  • 相关阅读:
    (原)在ubuntu 中安装 swi prolog 和 简单的使用
    (转) 新手入门:C/C++中的结构体
    (转) eclipse debug (调试) 学习心得
    flutter: 根视图、根元素与根渲染
    eggjs的参数校验模块egg-validate的使用和进一步定制化升级
    Vue源码中用到的工具函数
    21 项优化 React App 性能的技术
    react-redux 的使用
    编写 Vue.js 组件前需要知道的 10 件事
    Flutter实现抽屉动画效果
  • 原文地址:https://www.cnblogs.com/xiaowie/p/9448447.html
Copyright © 2011-2022 走看看