zoukankan      html  css  js  c++  java
  • Linq用法笔记

    一、什么是Linq?

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

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

    二、Linq包含哪些部分?

    4418040-efe4890e641d1dcd

    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 = { 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 = { 60, 77, 82, 46, 59, 98, 100, 84 };

    var good = marks.Where(m => m >= 60);//使用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=1, Sex=true, Name="小明", Birthday=Convert.ToDateTime("1984-1-1")},

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

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

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

    };

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

    var names = from s in students

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

    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技术分享平台

    阅读原文

  • 相关阅读:
    pandas Dataframe filter
    process xlsx with pandas
    data manipulate in excel with easyExcel class
    modify registry in user environment
    add number line in vim
    java import webservice
    ctypes MessageBoxA
    music 163 lyrics
    【python实例】自动贩卖机
    【python基础】sys模块(库)方法汇总
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12352773.html
Copyright © 2011-2022 走看看