• LINQ学习入门教程(一)


    LINQ 查询简介

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

    Linq查询的三个步骤

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

    下面我们就用这个三个步骤来做一个示例:
     1 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
    接下来把这个实体添加到集合中,并查询:
     1 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一样,都是一种面像对象的语句,如果有兴趣的朋友可以去对比一下这两者的不能之处;

            好了就写到这里吧,以上的文章由自己的理解写出,但还是有很多的不足的地方,希望大家对我提出你们的看法,这是也是我边学边写的,在这里我借用了MSDN的文章来完成这遍文章的写作;

  • 相关阅读:
    Codeforces 1265A Beautiful String
    1039 Course List for Student (25)
    1038 Recover the Smallest Number (30)
    1037 Magic Coupon (25)
    1024 Palindromic Number (25)
    1051 Pop Sequence (25)
    1019 General Palindromic Number (20)
    1031 Hello World for U (20)
    1012 The Best Rank (25)
    1011 World Cup Betting (20)
  • 原文地址:https://www.cnblogs.com/caodaiming/p/1187432.html
Copyright © 2020-2023  润新知