LINQ學習入門教程(一)

來源:互聯網
上載者:User
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 { get; set; }
 6        public string Address { get; set; }
 7        public int Score { get; set; }
 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的文章來完成這遍文章的寫作;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.