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

    一、什么是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查询

     1 static void Main(string[] args)
     2 
     3 {
     4 
     5 int[] marks = { 60, 77, 82, 46, 59, 98, 100, 84 };//定义一个数组
     6 
     7 var good = from m in marks//使用LINQ找到所有数值大于等于60的数字
     8 
     9 where m >= 60
    10 
    11 select m;
    12 
    13 foreach (int mark in good)//循环每一个结果
    14 
    15 {
    16 
    17 Console.WriteLine(mark);//输出结果
    18 
    19 }
    20 
    21 }
    View Code

      

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

     1 static void Main(string[] args)
     2 
     3 {
     4 
     5 int[] marks = { 60, 77, 82, 46, 59, 98, 100, 84 };
     6 
     7 var good = marks.Where(m => m >= 60);//使用Lambda表达式查询数值大于等于60的数字
     8 
     9 foreach (int mark in good)//循环每一个结果
    10 
    11 {
    12 
    13 Console.WriteLine(mark);//输出结果
    14 
    15 }
    16 
    17 }
    View Code

    3、使用LINQ查询对象集合

     1 class Program
     2 
     3 {
     4 
     5 static void Main(string[] args)
     6 
     7 {
     8 
     9 List students = new List//申明Student对象的集合
    10 
    11 {
    12 
    13 new Student{ StudentID=1, Sex=true, Name="小明", Birthday=Convert.ToDateTime("1984-1-1")},
    14 
    15 new Student{ StudentID=2, Sex=false, Name="小张", Birthday=Convert.ToDateTime("1983-5-1")},
    16 
    17 new Student{ StudentID=3, Sex=true, Name="小王", Birthday=Convert.ToDateTime("1983-2-15")},
    18 
    19 new Student{ StudentID=4, Sex=false, Name="小丽", Birthday=Convert.ToDateTime("1985-3-8")}
    20 
    21 };
    View Code

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

     1 var names = from s in students
     2 
     3 where s.Sex == true&&s.GetAge()<25 //调用对象的方法
     4 
     5 select s.Name;
     6 
     7 foreach (string name in names)//循环输出结果
     8 
     9 {
    10 
    11 Console.WriteLine(name);
    12 
    13 }
    14 
    15 }
    16 
    17 }
    18 
    19 public class Student  //定义Student类
    20 
    21 {
    22 
    23 //以下是定义类中属性
    24 
    25 public string Name { get; set; }
    26 
    27 public int StudentID { get; set; }
    28 
    29 public bool Sex { get; set; }
    30 
    31 public DateTime Birthday { get; set; }
    32 
    33 //以下是定义类中的方法
    34 
    35 public int GetAge()
    36 
    37 {
    38 
    39 return DateTime.Now.Year - Birthday.Year;
    40 
    41 }
    42 
    43 }
    View Code

    四、Linq有什么好处?

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

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

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

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

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

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

  • 相关阅读:
    Linux系统中压缩与解压缩
    Linux系统中的信息查找命令
    Paraview处理fluent计算结果
    insert_stream 中的 insert_every报错
    LIGGGHTS出现错误提示ERROR: Volume expectancy too small
    影响CFD计算量的因素分析及在OpenFOAM中的参数调整
    常见物理量的单位在OpenFOAM中的形式
    LIGGGHTS运行命令
    汇编系列10-内存
    汇编系列9-通用寄存器
  • 原文地址:https://www.cnblogs.com/liuhuimh/p/7070318.html
Copyright © 2011-2022 走看看