Linq的震憾

msdn的LINQ介绍:http://www.microsoft.com/china/MSDN/library/netFramework/netframework/linqprojectovw.mspx

据黄老师说:LINQ是ADO.NET3的一个子项目,将于.NET 3.5发布,并不是遥遥无期。

先来看一个LINQ示例:

using  System;
using  System.Query;
using  System.Collections.Generic;

class  app  {
  
static void Main() {
    
string[] names = "Burke""Connor""Frank"
                       
"Everett""Albert""George"
                       
"Harris""David" }
;

    IEnumerable expr 
= from s in names 
                               
where s.Length == 5
                               orderby s
                               select s.ToUpper();

    
foreach (string item in expr)
      Console.WriteLine(item);
  }

}




编译并运行,将输出:

BURKE
DAVID
FRANK

看呐!MS无疑给第三方ORM框架沉重一击,LINQ可以方便且直观地类SQL形式操纵IEnumerable集合和数据。更激动人心的是C#一贯的风格,层层解构,LINQ语法可以用C#基本语法来解释。支持LINQ,用到:

匿名委托类型(方法/函数)    C#2语法,省略委托类型定义。

Func   一种委托类型,一般用匿名委托赋值

扩展表达式  含this指针的静态类的静态函数,其中一个参数用this修饰,另一个参数是Func类型。可用实例方法的形式调用。一般用点操作符串联调用。

λ 表达式 Expression类可以解析λ 表达式。匿名委托实例化的简化形式,类似于这种形式:n=>n > 5;其中n是参数。

yield  例:yield return i;延迟返回计算结果。

对象设值实例化   命名属性初始化,调用setter方法用命名参数初始化成员变量。用于实例ORM中对象属性与字段名的映射。集合初始化也可用数组初始化语法。

匿名类型  引入var关键字,根据初始化表达式,编译器智能判断声名的变量所属类型,看起来越来越像脚本语言了。

希望微软的天才们带领C#越走越远。

——简单就是美,26个英文字母是简单的,汉语中博大精深的成语也是简单而且更美的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值