天天看點

LINQ基礎——FROM子句

LINQ基礎——FROM子句

一、簡單FROM子句

擷取資料源:

var queryAllCustomers =
        from cust in Customers
        select cust;       

分析:

查詢表達式必須以from子句開頭

例子中cust是範圍變量,範圍變量類似于foreach循環中的疊代變量,但在查詢表達式中,實際上不發生疊代。執行查詢時,範圍變量将用作對Customers中的每個後續元素的引用。因為編譯器可以推斷cust的類型,是以不必顯示指定此類型。

Customers是資料源,實作了IEnumerable或IEnumerable(T)或其派生接口的

二、複合FROM子句

查詢出成績有90分以上的學生,得到他們的名字和成績

//資料源
 IList<Student> students = new List<Student>
{
    new Student{ Name="Kevin", Score=new List<int>{89,93,88,78}},
    new Student{ Name="Jackie",Score=new List<int>{92,87,83,91}},
    new Student{ Name="Helen",Score=new List<int>{53,76,72,62}}
};
            //所有的Linq查詢操作都由以下三個不同的操作組成:
            //1.獲得資料源
            //2.建立查詢
            //3.執行查詢

            //使用複合from子句查詢指令
            var getStudent =
                    from student in students
                    from score in student.Score
                    where score > 90
                    select new { Name = student.Name, Score = score };

            foreach (var st in getStudent)
            {
                Console.WriteLine("NAME:{0},SCORE:{1}",st.Name,st.Score);
            }      

 分析:

我們可以看到學生對象中有個Score屬性,Score屬性本身就是List集合,這時候我們就要用到複合from子句進行查詢了。首先周遊學生對象集合中的每個學生對象,然後在用另一個from子句,對每個學生對象中的Score屬性進行周遊,篩選出含有90分以上的學生資訊進行傳回。

本文來自部落格園,作者:農碼一生,轉載請注明原文連結:https://www.cnblogs.com/wml-it/p/14836544.html

技術的發展日新月異,随着時間推移,無法保證本部落格所有内容的正确性。如有誤導,請大家見諒,歡迎評論區指正! 個人開源代碼連結: GitHub:

https://github.com/ITMingliang

Gitee:

https://gitee.com/mingliang_it

GitLab:

https://gitlab.com/ITMingliang

進開發學習交流群:
LINQ基礎——FROM子句

繼續閱讀