Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)delvpublished in(发表于) 2014/1/6 9:05:43 C#,3.0新特性初步研究,Part6:使用查询表达式_[Asp.Net教程]
查询表达式(Query Expression)大家都应该对SQL语句不陌生吧,在C# 2.0之前,嵌入到代码中的SQL就是下面这个样子: 1public void Test() 2{ 3SqlConnection c = new SqlConnection(…); 4 c.Open(); 5 SqlCommand cmd = new SqlCommand( 6 @“SELECT c.Name, c.Phone // queries in quotes 7 FROM Customers c 8 WHERE c.City = @p0” 9 );10 cmd.Parameters[“@po”] = “London”; // arguments loosely bound11 DataReader dr = c.Execute(cmd); 12 while (dr.Read()) {13 string name = r.GetString(0);14 string phone = r.GetString(1); // results loosely typed15 DateTime date = r.GetDateTime(2); // compiler can’t help catch mistakes16 }17 r.Close();18}在C# 3.0中,我们可以将“SQL语句”方便的运用到其他地方,当然这里并不是真正的SQL语句~~我觉得我会在以后的开发过程中使用很多以下的类似代码: 1class Program 2 { 3 static void Main(string[] args) 4 { 5 var contacts = new List(); 6 7 contacts.Add(new Contact("Michael", "520-331-2718", 8 "33140 SW Liverpool Lane", "WA")); 9 contacts.Add(new Contact("Jennifer", "503-998-1177",10 "1245 NW Baypony Dr", "OR"));11 contacts.Add(new Contact("Sean", "515-127-3340",12 "55217 SW Estate Dr", "WA"));1314 var WAContacts =15 from c in contacts 16 where c.State == "WA" 17 select new { c.Name, c.Phone };1819 Console.WriteLine("Contacts in the state of Washington: ");20 foreach (var c in WAContacts)21 {22 Console.WriteLine("Name: {0}, Phone: {1}", c.Name, c.Phone);23 }24 }25 }2627 class Contact28 {29 public string Name;30 public string Phone;31 public string Address;32 public string State;3334 public Contact(string name, string phone, string address, string state)35 {36 this.Name = name;37 this.Phone = phone;38 this.Address = address;39 this.State = state;40 }41 }其中出现的代码:1var WAContacts =2 from c in contacts 3 where c.State == "WA" 4 select new { c.Name, c.Phone };是否与我们熟悉的SQL语句有着极大的相似性呢?Of Course!到底是SQL梦见了C#,还是C#梦见了SQL……
来源:网络
赞