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
進開發學習交流群: