一、什么是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<T> 集合对象,即能够查询任何可以枚举的集合,如数组(Array和ArrayList)、泛型字典Dictinary<T>等,以及用户自定义的集合,而不需要使用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 = { 60, 77, 82, 46, 59, 98, 100, 84 };//定义一个数组

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

               where m >= 60

               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<Student> students = new List<Student>//申明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适配器,为数据交互带来真正方便。

欢迎关注我的公众号(同步更新文章):DoNet技术分享平台

阅读原文

Linq用法笔记的更多相关文章

  1. Linq 用法笔记

    Linq中怎么用 between…and? var query = from p in context.Parent from c in context.Child.Where(x => p.c ...

  2. jquery中关于append()的用法笔记---append()节点移动与复制之说

    jquery中关于append()的用法笔记---append()节点移动与复制之说 今天看一本关于jquery的基础教程,看到其中一段代码关于append()的一行,总是百思不得其解.于是查了查官方 ...

  3. linq用法整理

    linq用法整理 普通查询 var highScores = from student in students where student.ExamScores[exam] > score se ...

  4. C# LINQ学习笔记三:LINQ to OBJECT之操作字符串

    本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5814204.html,记录一下学习过程以备后续查用. 一.统计单词在字符串中出现的次数 请注意,若要执行计数, ...

  5. linq学习笔记

    最近在学习linq的一些基础知识,看了c#高级编程及阅读了园子内部几篇优秀的博文,有所体会,感觉应该记录下来,作为以后复习使用.都是一些最基础的知识,大致分为三个部分:linq预备知识:linq查询: ...

  6. Linq用法小记

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

  7. C# Linq 学习笔记

    刚刚学习了 Siki老师 的C#教程Linq部分,以下是笔记 需要引用命名空间 using System.Linq; 然后我们需要准备数据 武林高手类 /// <summary> /// ...

  8. MFC中按钮控件的用法笔记(转)

    VC学习笔记1:按钮的使能与禁止 用ClassWizard的Member Variables为按钮定义变量,如:m_Button1:则m_Button1.EnableWindow(true); 使按钮 ...

  9. C# LINQ学习笔记

    LINQ,语言集成查询: LINQ TO SQL,同EF,NHibernate一样,也是一种ORM框架: 1. 入门应用示例: static public void LinqBasic() { var ...

随机推荐

  1. 面向对象设计(Object-Oriented Design,OOD)

    前言 OOD简介 Shubho:亲爱的,让我们开始学习OOD吧.你了解面向对象原则吗? Farhana:你是说封装,继承,多态对吗?我知道的. Shubho:好,我希望你已了解如何使用类和对象.今天我 ...

  2. OpenStack修复影响宿主机的QEMU漏洞CVE-2017-2615

    距离这个虚拟化层面的漏洞公告发出已有两个多月了,漏洞详情可以查看: 360安全应急响应中心-360发现QEMU严重漏洞 影响国内大部分公有云 简单来说是通过Cirrus VGA操作读取宿主机内存中的内 ...

  3. java内存模型3

    数据竞争与顺序一致性保证 当程序未正确同步时,就会存在数据竞争.java内存模型规范对数据竞争的定义如下: 在一个线程中写一个变量, 在另一个线程读同一个变量, 而且写和读没有通过同步来排序. 当代码 ...

  4. Struts2中的JSON问题——后台返回JSON字符串到前台

    最近做一个项目遇到一个比较棘手的问题,项目后台采用struts2+Hibernate3+Spring3,前台采用ExtJs4.笔者目前仍是一名大二学生吗,后台框架完全是毫无任何基础,从零学,现学现用. ...

  5. 如何创建并运行java线程

    本文转载地址:            http://ifeve.com/creating-and-starting-java-threads/ Java线程类也是一个object类,它的实例都继承自j ...

  6. c++堆与栈的简单认识

    堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并将该结点的空间分配给程序,另外,对于大多数 ...

  7. sar使用

    http://88fly.blog.163.com/blog/static/1226803902012514710581/

  8. ASP.NET MVC Filter的思考

    思考了一下AOP的具体实现,后来想到ASP.NET MVC过滤器其实就是AOP的一种,于是从Filter下手研究AOP. 暂时先考虑AuthorizationFilter,ActionFilter,R ...

  9. Qzone 高性能 HTTPS 实践

    WeTest导读 自从去年QQ空间移动端页面开始切换到HTTPS之后,页面性能遇到了比较大的挑战,HTTPS对页面访问速度带来了比较大的影响,所以我们通过实践总结了一些能够提升HTTPS页面访问速度的 ...

  10. 初码-Azure系列-记一次MySQL数据库向Azure的迁移

    初码Azure系列文章目录 还在继续给客户迁移不同的系统到Azure,这一次是一个系统的MySQL数据库要迁移,将迁移过程记录一下 原系统环境 数据库版本:MySQL Community Editio ...