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 ] {  1 3 2 4 5 6 7  };   // 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 namespace LINQDemo
 2 {
 3    public class Student
 4     {
 5        public string Name { getset; }
 6        public string Address { getset; }
 7        public int Score { getset; }
 8     }
 9 }
10 
接下来把这个实体添加到集合中,并查询:
 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的文章来完成这遍文章的写作;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值