深入講解 LINQ表達(dá)式
本文從LINQ表達(dá)式簡(jiǎn)介、初識(shí)LINQ表達(dá)式、LINQ表達(dá)式解析、查詢操作符與擴(kuò)展方法解析等幾方面對(duì)對(duì)LINQ表達(dá)式進(jìn)行簡(jiǎn)單介紹。
在向大家詳細(xì)介紹LINQ表達(dá)式之前,首先讓大家了解下LINQ表達(dá)式簡(jiǎn)介,然后全面介紹LINQ表達(dá)式。
LINQ表達(dá)式簡(jiǎn)介
1.OO(面向?qū)ο螅┮酝獾慕颍盒畔⒌脑L問(wèn)與整合。關(guān)系數(shù)據(jù)庫(kù)與XML為其中的典型應(yīng)用。
2.NET Language Integrated Query (LINQ):不采用特定於關(guān)系數(shù)據(jù)庫(kù)或者XML的專有方案,而采用通用方案來(lái)解決各種信息源的訪問(wèn)與整合問(wèn)題。
3.在LINQ中,查詢成為編程語(yǔ)言的一個(gè)組成部分,這使得查詢表達(dá)式可以得到很好的編譯時(shí)語(yǔ)法檢查,豐富的元數(shù)據(jù),智能感知等強(qiáng)類型語(yǔ)言的好處。
初識(shí)LINQ表達(dá)式
- class app
- {
- static void Main()
- {
- string[] names = { "Burke", "Connor", "Frank",
- "Everett", "Albert", "George",
- "Harris", "David" };
- IEnumerable<string> query = from s in names
- where s.Length == 5
- orderby s
- select s.ToUpper();
- foreach (string item in query)
- Console.WriteLine(item);
- }
- }
LINQ表達(dá)式解析
- IEnumerable<string> query = from s in names
- where s.Length == 5
- orderby s
- select s.ToUpper();
在語(yǔ)義上等同于如下“方法風(fēng)格(基于方法)的查詢”:
- IEnumerable<string> query = names
- .Where(s => s.Length == 5)
- .OrderBy(s => s)
- .Select(s => s.ToUpper());
LINQ表達(dá)式解析:
- Func<string, bool> filter = delegate (string s) {
- return s.Length == 5;};
- Func<string, string> extract = delegate (string s) {
- return s; };
- Func<string, string> project = delegate (string s) {
- return s.ToUpper(); };
- IEnumerable<string> query = names.Where(filter)
- .OrderBy(extract)
- .Select(project);
查詢操作符與擴(kuò)展方法解析:
查詢操作符是LINQ表達(dá)式中的另外一項(xiàng)重要設(shè)施,LINQ使用擴(kuò)展方法來(lái)定義查詢操作符,例如where操作符:
- namespace System.Linq {
- public static class Enumerable {
- public static IEnumerable
Where ( - this IEnumerable
source, Func bool> predicate) { - foreach (T item in source)
- if (predicate(item))
- yield return item;
- }
- }
- }
以上就是對(duì)LINQ表達(dá)式的詳細(xì)介紹。
【編輯推薦】