管理杂谈OA答疑ERP答疑教程搜索

C# LINQ概述


摘要


语言集成查询 (LINQ) 为 C# 和 Visual Basic 提供语言级查询功能和高阶函数 API,让你能够编写具有很高表达力度的声明性代码。

正文


LINQ 的历史

从语言方面的进化
–委托
–匿名方法
–Lambda表达式
–Linq查询表达式

LINQ是什么

LinQ目的

面向对象技术诞生以来并没有解决降低访问和整合信息数据的复杂度的问题。其中两个最主要访问的数据源与数据库和 XML 相关。

使用LINQ的目的是为了提供一个解决对象关系映射问题的方案,同时简化对象和数据源的交互。LINQ最终发展成为一个通用语言集成查询的工具包。

LINQ正如它的名字“集成查询语言”的含义一样,它提供给程序员一个统一的编程界面。程序员不需要关心他将要操作的将是关系数据库还是XML,甚至是远程的对象,它都采用同样的查询方式。就如同通过T-SQL操纵数据库一样,不管是Oracle,SyBase还是SQL Server,他们的Select语法都是一样的。

有了LINQ,程序员便可以不再沉泥于不同的数据访问技术的学习。不管编程语言如何发展,还是数据库技术的发展,都不再需要程序员进行学习,数据存储的效率由数据库厂商进行优化,灵活的数据操作方法由数据访问中间件厂商提供,程序员只需要编写业务逻辑。

LINQ包括

LINQ的进化路径

委托

public delegate void Cal(int x, int y);
private void Add(int x ,int y){    MessageBox.Show((x + y).ToString());}
private void btnCall_Click(object sender, EventArgs e){    Cal cal = new Cal(Add);    cal(2, 3);}


匿名方法

public delegate void Cal(int x, int y);
private void btnCall_Click(object sender, EventArgs e){    Cal cal = delegate (int x, int y)    {        MessageBox.Show((x * y).ToString());    };
   cal(3, 4);}


Lambda 表达式

Lambda 表达式是一个可用于创建委托或表达式树类型的匿名函数。 通过使用 lambda 表达式,可以写入可作为参数或返回为函数调用值的本地函数。 Lambda 表达式对于编写 LINQ 查询表达式特别有用。
若要创建 Lambda 表达式,必须在 Lambda 运算符 => 左侧指定输入参数(如果有),然后在另一侧输入表达式或语句块。 例如,lambda 表达式 x => x * x 指定名为 x 的参数并返回 x 的平方。

public delegate void Cal(int x, int y);
private void btnCall_Click(object sender, EventArgs e){    Cal cal = (x, y) =>    {        MessageBox.Show((x * y).ToString());    };    cal(20, 3);}



更多精彩文章浏览...
点击右上角图标分享到朋友圈
官方网站:http://www.clicksun.cn
咨询热线:400-186-1886
服务邮箱:service@clicksun.cn