linq---我为你提笔序,你的美不只查询语句(二)

2015-01-23 21:53:52 · 作者: · 浏览: 8
).ToLower(); } 运行效果如下:

\

最后,小编来简单的介绍一下lambda表达式,C#Lambda基本的表达形式:(参数列表) => {方法体},说明一下,参数列表中的参数类型可以是明确类型或者是推断类型,如果是推断类型,则参数的数据类型将由编译器根据上下文自动推断出来,Lambda 用在基于方法的 LINQ 查询中,作为诸如Where 和 Where 等标准查询运算符方法的参数。我们来看一个具体的例子:

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

public partial class Form1 : Form  
    {  
        //定义一个委托  
        public delegate string deleTransfer(string s);  
   
        public Form1()  
        {  
            InitializeComponent();  
        }  
   
        private void btnTest_Click(object sender, EventArgs e)  
        {  
            //拓展方法----  
            string strTest = "asdsad";  
            Console.WriteLine(strTest.ToLower());  
            Console.WriteLine(strTest.ToUpper());  
            Console.WriteLine(strTest.ToPascal());  
            Console.WriteLine("-------------------------------------");  
   
            //Lambda 来源  
            //.Net FrameWork 1.0委托---函数指针  
            deleTransfer trans = new deleTransfer(ToPascal);  //委托指向方法ToPascal  
            Console.WriteLine(trans("abcdEFGH"));  
   
            //.net 2.0 匿名方法  
            deleTransfer transs = delegate(string s) { return s.Substring(0,1).ToUpper() + s.Substring(1).ToLower(); };  
            Console.WriteLine(transs("abcdEFGH"));  
   
            //.net 3.5 匿名方法  
            //deleTransfertransss = (s) => (s.Substring(0, 1).ToUpper() + s.Substring(1).ToLower());  
            deleTransfer transss = s =>s.Substring(0, 1).ToUpper() + s.Substring(1).ToLower();  
            Console.WriteLine(transss("abcdEFGH"));  
        }  
   
        //将字符串的首字母转化为大写字母的方法  
        public string ToPascal(string s)  
        {  
            return s.Substring(0,1).ToUpper() + s.Substring(1).ToLower();  
        }  
    }  
   
    public static class ExtraClass  
    {  
        //拓展方法,特殊的静态方法  
        public static string ToPascal(this string s)   //this后带类型,表名为该类型添加特殊的方法  
        {  
            return s.Substring(0,1).ToUpper() + s.Substring(1).ToLower();  
        }  
        public static string ToPascal(this string s, int len)   //this后带类型,表名为该类型添加特殊的方法  
        {  
            return s.Substring(0,1).ToUpper() + s.Substring(1, len).ToLower() + s.Substring(len + 1);  
        }  
}  
它的发展过程是在C#1.0中使用的委托,C#2.0中添加了匿名方法,C#3.0中添加了lambda表达式。

小编寄语:该博文,小编主要简单的介绍了linq的一些基本知识,包括linq和sql的对比,linq的扩展方法以及lambda表达式,对linq的理解还不是很深刻,欢迎小伙伴们一起讨论交流,Linq的一个重要功能就是ORMapping思想的具体实现,ORMapping的思想就是实现编程的真正面向对象,使我们不用关心数据库,只需要关系实体类或实体集合类就行。项目进行中,未完待续......