一、什么是Linq?

LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性。

LINQ是一种用来进行数据访问的编程模型,Linq可以用相同的语法访问不同的数据源,比如xml、数据库、注册表、事件日志等。

二、Linq包含哪些部分?

1、Linq to Sql组件:可以查询关系型数据库的数据,并可以提供其他操作,如检索、插入、修改、删除、排序、聚合、分区等。

2、Linq to DataSet组件:查询DataSet对象中的数据。

3、Linq to Object组件:可以查询IEnumerable或是IEnumerable 集合对象,即能够查询任何可以枚举的集合,如数组(Array和ArrayList)、泛型字典Dictinary等,以及用户自定义的集合,而不需要使用Linq提供程序或API。

4、Linq to XML组件:查询和操作XML结构的数据。

5、Linq to Entities:是 Entity Framework 的一部分并且取代 LINQ to SQL 作为在数据库上使用 LINQ 的标准机制。Entity Framework 是行业领先的对象-关系映射(ORM)系统。可以和多种数据库一起使用,并支持各种灵活、复杂的数据模型。

三、Linq的一些用法

1、简单的LINQ查询

 static void Main(string[] args)

 {

 int[] marks = { , , , , , , ,  };//定义一个数组

 var good = from m in marks//使用LINQ找到所有数值大于等于60的数字

 where m >= 

 select m;

 foreach (int mark in good)//循环每一个结果

 {

 Console.WriteLine(mark);//输出结果

 }

 }

  

2、使用Lambda表达式的LINQ查询

 static void Main(string[] args)

 {

 int[] marks = { , , , , , , ,  };

 var good = marks.Where(m => m >= );//使用Lambda表达式查询数值大于等于60的数字

 foreach (int mark in good)//循环每一个结果

 {

 Console.WriteLine(mark);//输出结果

 }

 }

3、使用LINQ查询对象集合

 class Program

 {

 static void Main(string[] args)

 {

 List students = new List//申明Student对象的集合

 {

 new Student{ StudentID=, Sex=true, Name="小明", Birthday=Convert.ToDateTime("1984-1-1")},

 new Student{ StudentID=, Sex=false, Name="小张", Birthday=Convert.ToDateTime("1983-5-1")},

 new Student{ StudentID=, Sex=true, Name="小王", Birthday=Convert.ToDateTime("1983-2-15")},

 new Student{ StudentID=, Sex=false, Name="小丽", Birthday=Convert.ToDateTime("1985-3-8")}

 };

//接下来使用LINQ查询所有年龄小于25岁的男性

 var names = from s in students

 where s.Sex == true&&s.GetAge()< //调用对象的方法

 select s.Name;

 foreach (string name in names)//循环输出结果

 {

 Console.WriteLine(name);

 }

 }

 }

 public class Student  //定义Student类

 {

 //以下是定义类中属性

 public string Name { get; set; }

 public int StudentID { get; set; }

 public bool Sex { get; set; }

 public DateTime Birthday { get; set; }

 //以下是定义类中的方法

 public int GetAge()

 {

 return DateTime.Now.Year - Birthday.Year;

 }

 }

四、Linq有什么好处?

1、容易上手,学习成本低

2、可以很大程度上减少代码量。

3、更快开发错误更少的应用程序。

4、可以很容易的合并数据源。

5、让新开发者开发效率更高。

6、任何对象或数据源都可以定制实现Linq适配器,为数据交互带来真正方便。

最新文章

  1. Field &#39;id&#39; doesn&#39;t have a default value(jdbc连接错误)
  2. 集合中list、ArrayList、LinkedList、Vector的区别、Collection接口的共性方法以及数据结构的总结
  3. DropDownList1
  4. bzoj1266
  5. BZOJ2191Splite
  6. 服务器端打开office然后采用虚拟打印 转换成pdf
  7. IntelliJ IDEA 的Project structure说明
  8. [csdn markdown]使用摘记二 快捷键及导入导出Markdown文件
  9. [struts2学习笔记] 第四节 学着使用struts 2的tag标签
  10. hover变化图片
  11. java idea导入ecli项目
  12. Maven中可以被继承的POM元素
  13. linux内核剖析(十一)进程间通信之-共享内存Shared Memory
  14. Android CPU类型及预定义的宏
  15. exchange 2010 数据库管理
  16. Windows Azure Storage (24) 启用Azure Blob日志
  17. (转找了好久)实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上
  18. PHP学习第一天
  19. 从零写Java Web框架——请求的处理DispatcherServlet
  20. laravel调用sql server存储过程并取得ReturnValue

热门文章

  1. ubuntu的安装及ubuntu中安装mysql和tomcat
  2. [jzoj]3506.【NOIP2013模拟11.4A组】善良的精灵(fairy)(深度优先生成树)
  3. sql server 2012 减少日志
  4. Git SSL公钥密钥生成
  5. Error: Unable to access xxx.jar
  6. 如何实现文件上传 - JavaWeb
  7. HTML5 部分新增语义化标签元素
  8. [转]jenkins2 插件安装
  9. CIKM 2012 papers to be downloaded
  10. Mesos源码分析(6): Mesos Master的初始化