一、什么是LINQ?它可以用來做什么
語言集成查詢(Language Integrated Query,LINQ)是一系列標准查詢操作符的集合,這些操作符幾乎對每一種數據源的導航、過濾和執行操作都提供了底層的基本查詢架構。
LINQ可查詢的數據源包括XML(可使用LINQ TO XML)、關系數據(使用LINQ TO SQL,及先前的DLINQ)、ADO.NET DataSet(使用LINQ TO DataSet),以及內存中的數據。
二、投影操作符:Select
Select操作符對單個序列或集合中的值進行投影。所謂投影,比如有一個數據集,想用LINQ語法去操作數據集,會寫一個LINQ的表達式,表達式會把數據集合中的數
據簡單的投影到一個變量中,並且可以通過這個變量去篩選數據。
示例:
Employees類
public class Employees { public Guid Id { get; set; } public string Name { get; set; } public int Sex { get; set; } public string CompanyName { get; set; } }
class Program { static void Main(string[] args) { //使用集合初始化器給集合賦值 List<Employees> emp = new List<Employees> { new Employees(){Id=Guid.NewGuid(),Name="張三",Sex=0,CompanyName="xx技術有限公司"}, new Employees(){Id=Guid.NewGuid(),Name="李四",Sex=0,CompanyName="xx培訓"}, new Employees(){Id=Guid.NewGuid(),Name="王五",Sex=0,CompanyName="xx集團"} }; //查詢語法:不能省略最后的select var query = (from p in emp where p.Name.StartsWith("王") select p).FirstOrDefault(); //查詢方法:設計到Lambda表達式,全部返回 可以省略最后的select 延遲加載 var query1 = emp.Where(p => p.Name.StartsWith("王")).Select(e => new { e.Name,e.CompanyName}); //查詢方法:返回匿名類 var query2 = emp.Where(p => p.Name.StartsWith("王")).Select(p => p); foreach (var item in query1) { Console.WriteLine(item.Name); } Console.ReadKey(); } }