zoukankan      html  css  js  c++  java
  • LINQ学习入门教程(一)

    LINQ 查询简介

          Linq 是一跨各种数据源和数据格式的数据模型;它在查询是,始终是把它作为一种对象来操作,可以使用基本相同的编码模型查询和数据的转换XML,SQL,ADO数据等;

    Linq查询的三个步骤

                在我们使用Linq来查询数据的时候我们都会按照这三个步骤来做,这是初学者应该记住
                1.创建数据源,这里的数据源可以是数组,集合,XML,SQL等数据库
                2.新建一个查询,
                    如: from xxxx in xxxxx where xxx select;这一种结构,注意的是,必须以from开头,select结尾
                3.执行查询。在这里我们通常用到执行查询就是foreach来做,当然有for语句也可以,但后者在效率上没有前者好;

    下面我们就用这个三个步骤来做一个示例:

    using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Collections;
     6 
     7 namespace LINQDemo
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             int[] number = new int[7] { 1324567 };  //create Datasourse
    14             var n = from num in number where (num % 2 == 0) select num; // create Query
    15             foreach (int a in n)   //Query execution
    16             {
    17                 Console.WriteLine(a.ToString());
    18             }
    19         }
    20     }
    21 }

    执行的结果:2,4,6
    首先建了一个int的数组作为数据源,其次创建了一个查询,最后执行了这个查询
    现在来看看是怎么来执行这个过程的,如图所示:


           每执行查询时,同要去查询的条件中找,符合条件的数据,大家下来可以一步步的调试,就要可以清楚的看到他的执行步骤了。

            在上面一个示例是我们的数据源用的是一个int 的数组,刚来我们也说过数据源可以是XML ,数据库等
    我们来看看XML:
    using System.xml.Linq;
    XElement element = XElement.Load(@"cao.xml");
    用数据库作为数据源:
    using System.Data.Linq;
    DataContext dt = new DataContext(@"cao.mdf");
    在以后的文章中我会讲到这两种数据源,这里就不做示例了;

    接下来我们来看一个对ArrayList的一个查询示例:
    新建一个Student类:

    Code

    接下来把这个实体添加到集合中,并查询:

    ArrayList arr = new ArrayList();
     2             arr.Add(
     3                 new Student
     4             {
     5                 Name = "caodaiming",
     6                 Address = "sichuan",
     7                 Score = 49
     8             });
     9 
    10             arr.Add(
    11                 new Student
    12                 {
    13                     Name = "lishi",
    14                     Address = "xi'an",
    15                     Score = 44
    16                 }
    17                 );
    18 
    19             var querry = from Student student in arr select student;
    20 
    21             foreach (Student st in querry)
    22 
    23                 Console.WriteLine(st.Name + "-----" + st.Address + "-------" + st.Score);

            在这里我们还是按照了查询的基本步骤来做的,没有什么变化,只要记住这个步骤就OK了。

            现在说说查询的表达试吧,其实这与我们数据库的语句有一点像,数据库的语句是select .....from .....,而Linq查询语句是from ..... in ..... where ......select 完全一我们SQL语句是相反的,Linq查询语句是面对象的查询语句,就是JAVA中Hibernate 中的HQL一样,都是一种面像对象的语句,如果有兴趣的朋友可以去对比一下这两者的不能之处;

  • 相关阅读:
    P1012 拼数(水题)
    oracle 存储过程中调用同义词报错“表和视图不存在”
    C#文件相对路径
    C# WebAPi接收和发送图片
    EFCore学习笔记一:(安装EFCore并根据Code First生成数据库)
    Winform切换登录用户
    Winform中子控件Dock排列顺序问题
    ORA-28001: the password has expired解决方法
    C#实体类生成XML(注意<![CDATA]>标签的不解析)
    一次完整的HTTP请求过程
  • 原文地址:https://www.cnblogs.com/kksguijiao/p/4349438.html
Copyright © 2011-2022 走看看