首页 > 代码库 > Linq几样特点

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;var x;x="abc";

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

//简单的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);

 

Linq几样特点