LINQ查詢表達式中如何實現(xiàn)復合from子句

這篇文章主要為大家展示了“LINQ查詢表達式中如何實現(xiàn)復合from子句”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“LINQ查詢表達式中如何實現(xiàn)復合from子句”這篇文章吧。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名申請、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、萊州網(wǎng)站維護、網(wǎng)站推廣。

<!--[if !supportLists]-->1.     <!--[endif]-->功能

from子句負責指定LINQ查詢操作中的數(shù)據(jù)源和范圍變量。

<!--[if !supportLists]-->2.     <!--[endif]-->語法要求

①每一個LINQ查詢表達式都必須包含from子句,且必須以from子句開頭。

②如果LINQ查詢表達式還包含子查詢,那么子查詢表達式也必須以from子句開頭。

③數(shù)據(jù)源不但包括LINQ查詢本身的數(shù)據(jù)源,而且還包括子查詢的數(shù)據(jù)源。范圍變量一般用來表示源序列中的每一個元素。

④from子句指定的數(shù)據(jù)源的類型必須為IEnumerable、IEnumerable或前兩者的派生類型。

⑤在from子句中,如果數(shù)據(jù)源實現(xiàn)了IEnumerable,那么編譯器可以自動推斷出范圍變量的類型。然而,如果數(shù)據(jù)源的類型是非泛型IEnumerable類型(如ArrayList等)時,則必須顯式指定范圍變量的數(shù)據(jù)類型。

<!--[if !supportLists]-->3.     <!--[endif]-->

復合from子句查詢舉例

在有些情況下,數(shù)據(jù)源的每一個元素本身可能還包含另一個子數(shù)據(jù)源(如序列、列表等)。此時,如果要查詢子數(shù)據(jù)源中的元素,則需要使用復合類型的from子句。

下面的實例演示了復合from子句查詢的方法,具體步驟說明如下。

(1)創(chuàng)建數(shù)據(jù)類型為List的數(shù)據(jù)源。其中,students元素的Scores屬性的數(shù)據(jù)類型是List,即該屬性的值也是一個子數(shù)據(jù)源。

(2)使用復合from子句查詢每個學生的各個大于90分的科目成績信息。第1個from子句負責查詢students數(shù)據(jù)源,第2個from子句則用于查詢student.Scores數(shù)據(jù)源。

(3)使用foreach語句輸出查詢的結(jié)果,并把此結(jié)果最終顯示于ASP.NET服務器標簽控件中。

public class Student   {      public string LastName { get; set; }      public List Scores { get; set; }   }   ……(省略)   StringBuilder str = new StringBuilder("");   //建立數(shù)據(jù)源   List students = new List      {         new Student {LastName="Omelchenko", Scores= new List {97, 97, 81, 60}},        new Student {LastName="O'Donnell", Scores= new List {75, 80, 91, 39}},        new Student {LastName="Mortensen", Scores= new List {88, 94, 65, 85}},        new Student {LastName="Garcia", Scores= new List {97, 89, 99, 82}},        new Student {LastName="Beebe", Scores= new List {35, 94, 91, 70}}     };   //使用復合from子句循環(huán)搜索出每個學生的各個大于90分的成績  var scoreQuery =      from student in students     from score in student.Scores      where score > 90      select new { Last = student.LastName, score };   //顯示查詢結(jié)果   foreach (var v in scoreQuery)   {      str.Append(v.Last +" "+v.score+ "  ");   }   Label1.Text = "";   Label1.Text = str.ToString();

下圖給出了上例的LINQ查詢運行結(jié)果快照。

LINQ查詢表達式中如何實現(xiàn)復合from子句

以上是“LINQ查詢表達式中如何實現(xiàn)復合from子句”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享文章:LINQ查詢表達式中如何實現(xiàn)復合from子句
標題鏈接:http://muchs.cn/article14/gepgge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、自適應網(wǎng)站品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、ChatGPT、網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管