C#入门系列 (二十七) -- LINQ 简析
LINQ 的功能
什么是 LINQ?Linq 是在.NET Framework 3.5 之后的版本出现的.
在程序中的数据和数据库的数据相反,保存在类对象或结构中的数据差异很大。没有通用的查询语言从数据结构中获取数据
LINQ: 语言集成查询(Language Integrated Query)是一组用于 C#和 Visual Basic 语言的扩展。它允许编写 C#或 VisualBasic 代码以查询数据库相同的方式操作内存数据。
LINQ 包含 DLinq 和 XLinq
LINQ 的简单使用
使用时需引用 Linq 命名空间
查询一数组中大于等于 60 的元素,代码如下:
LINQ 的优点
无需复杂学习过程即可上手;
编写更少代码即可创建完整应用;
更快开发错误更少的应用程序;
无需求助奇怪的编程技巧就可合并数据源;
能够大幅减少过程控制语句的代码块,使代码的可读性和可维护性大幅提高;
任何对象或数据源都可以定制实现 Linq 适配器,为数据交互带来真正方便。
LINQ 中的匿名类型
匿名类型借助==var==关键字进行创建,可以把它理解为类型占位符,它并不是 C#中的一种基本类型。它能在你编写程序的时候,自动计算出等式右边的类型,而且支持智能感知。
var 定义的可以认为是任意类型,,,你给他赋值是什么类型,他就是什么类型,例如,下面这些语句都和合法的:
匿名类型成员必须使用成员赋值,简单名称或成员访问来声明
匿名类型的创建语法:
感觉可以理解为:有个 Person 类,他有个两个参数的重载构造函数(参数分别是:姓名,性别),这样就创建了一个 person 的实例,并且这个实例包含有姓名,性别的两个属性。
==使用匿名类型需要注意:(1)匿名类型只能和局部变量配合使用,不能用于类成员;(2)由于匿名类型没有名字,所以必须使用 var 关键词作为变量类型==
当编译器遇到匿名类型的对象初始化时,创建了一个有名字的新类类型。
对于每一个成员初始化器,编译器推断其类型并在新的类中创建这个类型的私有变量,然后创建用于访问这个变量的读写属性。
如果编译器遇到了另一个具有相同参数名、相同引用类型名和相同顺序的匿名类型,它会重复这个类型并直接创建新的实例,而不会创建新的匿名类型。
版权声明: 本文为 InfoQ 作者【陈言必行】的原创文章。
原文链接:【http://xie.infoq.cn/article/4feac4504f4e44cae9a1958b3】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论