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);
时间: 2024-10-04 06:42:24

Linq几样特点的相关文章

30分钟LINQ教程

在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在foreach一个集合的时候, 也要为遍历的集合的元素,指定变量的类型 隐式类型的出现, 程序员就不用再做这个工作了. (2)使用方法   来看下面的代码: var a = 1; //int a = 1; var b = "123";//string b = "123"; va

C#调用 Oracle 存储过程样例代码

-- 建表CREATE TABLE sale_report (     sale_date DATE NOT NULL ,     sale_item VARCHAR(2) NOT NULL ,      sale_money DECIMAL(10,2) NOT NULL,      PRIMARY KEY(sale_date, sale_item)); -- 測试数据DECLAREv_begin_day DATE;v_end_day DATE;BEGIN v_begin_day := TO_D

LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法

在本系列中.主要介绍LINQ to SQL基础的东西,由于LINQ太强大了,它对我们寻常使用不同的数据源有着不同的内容,其包含对于SQL Server 数据库的LINQ to SQL:对于XML 文档的LINQ to XML.对于 ADO.NET 数据集的LINQ to DataSet.对于.NET 集合.文件.字符串等的LINQ to Objects.例外也出现了一些对LINQ支持的开源项目,比如LINQ to JSON,LINQ for NHibernate等等. 在这个系列中,一些关于LI

LINQ教程

在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在foreach一个集合的时候, 也要为遍历的集合的元素,指定变量的类型 隐式类型的出现, 程序员就不用再做这个工作了. (2)使用方法   来看下面的代码: var a = 1; //int a = 1; var b = "123";//string b = "123"; va

LINQ之增删改查

前言: LINQ,语言集成查询(LanguageIntegrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据. 从技术角度而言,LINQ定义了大约40个查询操作符,如select.from.in.where以及order by(C#中).使用这些操作符可以编写查询语句.不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型. 开始学习LinQ总是抱着一种感觉自己很虚

与LINQ有关的语言特性

在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在foreach一个集合的时候, 也要为遍历的集合的元素,指定变量的类型 隐式类型的出现, 程序员就不用再做这个工作了. (2)使用方法   来看下面的代码: var a = 1; //int a = 1; var b = "123";//string b = "123"; va

NET中级课--Linq(转)

在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在foreach一个集合的时候, 也要为遍历的集合的元素,指定变量的类型 隐式类型的出现, 程序员就不用再做这个工作了. (2)使用方法   来看下面的代码: var a = 1; //int a = 1; var b = "123";//string b = "123"; va

一口气学会Linq

千万别被这个页面的滚动条吓到!!! 我相信你一定能在30分钟之内看完它!!! 在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在foreach一个集合的时候, 也要为遍历的集合的元素,指定变量的类型 隐式类型的出现, 程序员就不用再做这个工作了. (2)使用方法   来看下面的代码: var a = 1; //int a = 1; var b = "123

.NET面试题系列[15] - LINQ:性能

.NET面试题系列目录 当你使用LINQ to SQL时,请使用工具(比如LINQPad)查看系统生成的SQL语句,这会帮你发现问题可能发生在何处. 提升性能的小技巧 避免遍历整个序列 当我们仅需要一个资料的时候,我们可以考虑使用First / FirstOrDefault / Take / Any等方法,它们都会在取得合乎要求的资料后退出,而不会遍历整个序列(除非最后一个资料才是合乎要求的哈哈).而类似ToList / Max / Last / Sum / Contain等方法显而易见会遍历整