LINQ查詢表達(dá)式剖析
本文向大家介紹LINQ查詢表達(dá)式,可能好多人還不了解LINQ查詢表達(dá)式,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
新建一個(gè)叫Step1.aspx的新頁面。添加一個(gè)GridView控件到頁面中,如下所示:
- <%@ Page Language="C#" CodeFile="Step1.aspx.cs" Inherits="Step1" %>
- <html>
- <body>
- <form id="form1" runat="server">
- <div>
- <h1>City Names</h1>
- <asp:GridView ID="GridView1" runat="server">
- </asp:GridView>
- </div>
- </form>
- </body>
- </html>
然后在后臺(tái)代碼文件中我們將編寫經(jīng)典的“hello world”LINQ示例-包括對(duì)一列字符串的搜索和排序:
- using System;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Query;
- public partial class Step1 : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- string[] cities = { "London", "Amsterdam", "San Francisco", "Las Vegas",
- & nbsp;"Boston", "Raleigh", "Chicago", "Charlestown",
- & nbsp;"Helsinki", "Nice", "Dublin" };
- GridView1.DataSource = from city in cities
- & nbsp; where city.Length > 4
- & nbsp; orderby city
- & nbsp; select city.ToUpper();
- GridView1.DataBind();
- }
- }
在上面的示例中,我列出了一組我今年一月到五月所去過的城市的名稱。然后我用LINQ查詢表達(dá)式(query expression)對(duì)這個(gè)數(shù)組進(jìn)行操作。這個(gè)查詢表達(dá)式返回名字多于4個(gè)字符的所有城市,然后按照城市名 稱的字母進(jìn)行排序并把名字轉(zhuǎn)換為大寫。
LINQ查詢表達(dá)式返回如下類型:IEnumerable<T>-"select"子句選擇的對(duì)象類型決定了這里 的<T>的類型。因?yàn)樯厦胬又?city"是一個(gè)字符串,所以類型安全的結(jié)果是一個(gè)如下所示的基于泛型 的集合:
- IEnumerable<string> result = from city in cities
- & nbsp; where city.Length > 4
- & nbsp; orderby city
- & nbsp; select city.ToUpper();
因?yàn)锳SP.NET控件能綁定到任何的IEnumerable集合,所以我們可以很容易的把LINQ查詢結(jié)果綁定到GridView中, 然后調(diào)用DataBind()方法。
注意,除了可以使用上面的GridView控件外,我也可以使用 < asp:repeater>, < asp:datalist>, < asp:dropdownlist>, 或者任何其他ASP.NET的列表控件(可以是產(chǎn)品自帶或者開發(fā)人員自己開發(fā)的控件)。在這些示例中我只使用了< asp:gridview>-但是你們可以使用任何其他的控件。
【編輯推薦】