我們將先介紹一個示例,這個示例使用 LINQ 創建了一個查詢,以便在一個簡單的內存對象數組中查找一些數據,并輸出到控制臺上。
試一試:第一個 LINQ 程序:按照下面的步驟在 Visual Studio 中創建示例:?
using System;
using System.Collections.Generic;
using?System.Linq;?
using?System.Text;
using System.Threading.Text;
(3)在 Program.cs 的 Main() 方法中添加如下代碼:
static void Main(string[] args)
{ string[]?names?=?{?"Alonso",??"Zheng",??"Smith",??"Jones", "Smythe",
"Small",??"Ruiz",??"Hsieh",??"Jorgenson",??"Ilyich",??"Singh",??"Samba", "Fatimah"?};var queryResults =from n in nameswhere?n.StartsWith("S")?select?n;Console.WriteLine("Names?beginning?with?S:");foreach?(var?item?in?queryResults)?{?Console.WriteLine(item);?}Console.Write("Program finished, press Enter/Return to continue:"); Console.ReadLine();
}
(4) 編譯并運行程序(按下 F5 鍵即可開始調試),列表中的名稱以 S 開頭,按照它們在數組中的聲明順序排列,如下所示。
Names beginning with S:
Smith
Smythe
Small
Singh
Samba
Program finished, press Enter/Return to continue:
按下回車鍵,結束程序,關閉控制臺屏幕。如果使用 Ctrl+F5 組合鍵(啟動時不使用調試功能),就需要按下回車鍵兩次,這會結束程序的運行。
示例的說明
第一步是引用 System.Linq 名稱空間,這在創建項目時由 Visual Studio? 自動完成:
using System.Ling;
所有的基本底層系統都支持 System.Linq 名稱空間中用于 LINQ 的類。如果在Visual 之外部創建 C# 源文件或編輯以前版本創建的項目,就必須手動添加 using System.Linq 指令。
下一步創建一些數據,在本例中就是聲明并初始化 names 數組:
string[]?names?=?{?"Alonso",??"Zheng",??"Smith",??"Jones",??"Smythe", "Small",
"Ruiz",??"Hsieh",??"Jorgenson",??"Ilyich",??"Singh",??"Samba", "Fatimah"?};
這些數據很少,很適合用于查詢結果比較明顯的示例。程序的下一部分是真正的 LINQ 查詢語句:
var queryResults =from?n?in?nameswhere?n.StartsWith("S")?select?n;
這是一個看起來比較古怪的語句。它不像是C#語言,實際上 from.….where….select 語法類似于 SQL 數據庫查詢語言。但這個語句不是 SQL,而是 C#,在 VS中輸入這些代碼時,from、where 和 select會突出顯示為關鍵字,這個古怪的語法對編譯器而言是完全正確的。
這個程序中的 LINQ 查詢語句使用了 LINQ 聲明性查詢語法:
var queryResults =from n in nameswhere?n.StartsWith("S")?select n;
該語句包括4個部分:以 var 開頭的結果變量聲明,使用查詢表達式給該結果變量賦值,查詢表達式包含 from 子句、where 子句和 select 子句。
?微信公眾號?
DotNet講堂