zoukankan      html  css  js  c++  java
  • 【.NET】Linq几样特点

    LinQ 是 .net framework 3.5的技术,对集合的查询和操作十分方便,结合LinQ Provider ,可以更方便操作XML和SQL(或Entity)。

    LinQ有6样常用的特性:

    1. 自动属性
    2. 隐形类型
    3. 对象集合初始器
    4. 匿名类
    5. 扩展方法
    6. Lambda表达式

    自动属性就是,之前实体类的写法,需要有字段和属性赋值,现在都省略了,写成:

    public class users{
        public int uid{get;set;}  
    }

    隐形类型就是,可以使用类似javascript的var来声明变量了,编译时赋值后,就不能改变数据类型。

    var i = 123;

    对象集合初始器就是,类似以前重载构造函数,用构造函数赋值的方法,现在更方便的做法:

    //简单的
    User user = new User{id=1;name="bb";sex="";}
    //嵌套的
    User user = new User{
           new Address{city="深圳";qu="福田区";}
    }
    //用集合List的数组类
    List<User> user = new List{
          new User{id=1;name="AA";sex=""},
          new User{id=2;name="BB";sex=""}      
    }

    匿名类就是,隐形类型+对象集合初始器

    var u = new User{id=1;name="aa";sex=""};

    扩展方法就是,静态方法都可以直接在变量上使用了,如:

    //静态的公用方法
    public static class common{
          public static bool IsNum(this sting s)
         {
                //判断是否数字
                Regex regex = new Regex(@"^[0-9]*$");
                return regex.IsMatch(s);
         }
    }
    
    //在别的类
    public class a{
           public void abc()
           {
                   string str1 = "123";
                   str1.IsNum();
            }
    }

    Lambda表达式(冷打)就是,s=>s.IndexOf("abc") > 0       规则是(参数列表)=>表达式或查询语句,目前知道的可以用在委托和是Prodicate<T>的时候。

    //委托
    delegate int get1(int);
    get1 bb = s=> s * s;
    int j = bb(5); //j=25
    
    //Prodicate<T>
    List<int> temp = new List<int>{1,2,3};
    var aa1 = temp.FindAll(s => s == 1);
  • 相关阅读:
    给js function的参数设置默认值
    如何让windows服务器IIS支持.apk/.ipa文件下载
    Firefox 设置技巧
    在sql中使用了 hashbytes 函数
    SQL Server 查询处理中的各个阶段(SQL执行顺序)
    Jquery 操作 radio选中值
    gradle更新依赖库
    weex第一节-环境搭建
    安装weex-toolkit老是失败的解决办法
    Android透明度颜色值计算
  • 原文地址:https://www.cnblogs.com/laokchen/p/5846762.html
Copyright © 2011-2022 走看看