Linq几样特点

Posted 7分记忆3分耐力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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几样特点的主要内容,如果未能解决你的问题,请参考以下文章

错误 3002:映射片段中的问题 | c# linq 到实体

并行LINQ PLinq

五大不良 coding 习惯,你占了几样?

五大不良 coding 习惯,你占了几样?

五大不良 coding 习惯,你占了几样?

提效小技巧——记录那些不常用的代码片段