LINQ查詢表達式剖析
本文向大家介紹LINQ查詢表達式,可能好多人還不了解LINQ查詢表達式,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
新建一個叫Step1.aspx的新頁面。添加一個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>
然后在后臺代碼文件中我們將編寫經典的“hello world”LINQ示例-包括對一列字符串的搜索和排序:
- 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查詢表達式(query expression)對這個數組進行操作。這個查詢表達式返回名字多于4個字符的所有城市,然后按照城市名 稱的字母進行排序并把名字轉換為大寫。
LINQ查詢表達式返回如下類型:IEnumerable<T>-"select"子句選擇的對象類型決定了這里 的<T>的類型。因為上面例子中"city"是一個字符串,所以類型安全的結果是一個如下所示的基于泛型 的集合:
- IEnumerable<string> result = from city in cities
- & nbsp; where city.Length > 4
- & nbsp; orderby city
- & nbsp; select city.ToUpper();
因為ASP.NET控件能綁定到任何的IEnumerable集合,所以我們可以很容易的把LINQ查詢結果綁定到GridView中, 然后調用DataBind()方法。
注意,除了可以使用上面的GridView控件外,我也可以使用 < asp:repeater>, < asp:datalist>, < asp:dropdownlist>, 或者任何其他ASP.NET的列表控件(可以是產品自帶或者開發人員自己開發的控件)。在這些示例中我只使用了< asp:gridview>-但是你們可以使用任何其他的控件。
【編輯推薦】