LINQ- Language Integrated Query 語(yǔ)言集成查詢 LINQ通過對(duì)象的方式對(duì)數(shù)據(jù)庫(kù)進(jìn)行描述。 LINQ是一種能夠快速對(duì)大部分?jǐn)?shù)據(jù)源進(jìn)行訪問和數(shù)據(jù)整合的一種技術(shù),,使用相同的基本查詢表達(dá)式模式類查詢和轉(zhuǎn)換SQL數(shù)據(jù)庫(kù),、ADO.NET數(shù)據(jù)集、XML文檔和流已經(jīng).NET集合中的數(shù)據(jù),。 從.NET3.5開始引入LINQ LINQ to Objects LINQ to DataSet LINQ to SQL LINQ to Entities LINQ to XML 命名空間System.Data.Linq 該命名空間包含支持與LINQ to SQL應(yīng)用程序中的關(guān)系數(shù)據(jù)庫(kù)進(jìn)行交互的類 System.Data.Linq.Mapping 該命名空間包含用于生成表示關(guān)系數(shù)據(jù)庫(kù)的結(jié)構(gòu)和內(nèi)容的LINQ to SQL對(duì)象模型的類 System.Data.Linq.SqlClient 該命名空間包含與SQL Server進(jìn)行通信的提供程序類,,已經(jīng)包含查詢幫助器方法的類 System.Linq 該命名空間提供支持使用語(yǔ)言集成查詢(LINQ)進(jìn)行查詢的類和接口 System.Linq.Expression 該命名空間包含一些類,接口和枚舉,,它們使語(yǔ)言級(jí)別的代碼表達(dá)式能夠表示為表達(dá)式樹形式的對(duì)象 System.Xml.Linq 包含LINQ to XML的類,,LINQ to XML是內(nèi)存中的XML變成接口
查詢表達(dá)式使用form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace LinqTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 }; //創(chuàng)建查詢 //查詢結(jié)果的類型是IEnumberable<int> var result0 = from num in numbers where (num % 2) == 0 select num; //執(zhí)行查詢結(jié)果 foreach (int num in result0) { listBox1.Items.Add(num); } } private void button2_Click(object sender, EventArgs e) { listBox1.Items.Clear(); int[] numbers = new int[7] { 2, 1, 2, 6, 4, 5, 3 }; var result1 = //聲明查詢 from num in numbers //聲明臨時(shí)變量num,其值來源于numbers where num>3 //當(dāng)前值大于3 orderby num descending//按照descending方式排序,,降序 select num; //將當(dāng)前項(xiàng)加入到結(jié)果序列中 foreach (int num in result1) { listBox1.Items.Add(num); } } private void button3_Click(object sender, EventArgs e) { listBox1.Items.Clear(); int[] numbers = new int[7] { 2, 1, 2, 6, 4, 5, 3 }; var result2 = //聲明查詢 from num in numbers //聲明臨時(shí)變量num,,其值來源于numbers where num > 3 //當(dāng)前值大于3 orderby num ascending//按照ascending方式排序,升序 select string.Format("當(dāng)前項(xiàng)值為{0}",num); //將當(dāng)前項(xiàng)加入到結(jié)果序列中 foreach (string num in result2) { listBox1.Items.Add(num); } } private void button4_Click(object sender, EventArgs e) { listBox1.Items.Clear(); int[] numbers = new int[7] { 2, 1, 2, 6, 4, 5, 3 }; int result3 = //聲明查詢 (from num in numbers //聲明臨時(shí)變量num,,其值來源于numbers where num > 3 //當(dāng)前值大于3 select num).Count(); //將當(dāng)前項(xiàng)加入到結(jié)果序列中 button4.Text += "--" + result3.ToString(); } } } Form1.cs |
|