LINQ表達式簡單描述
在向大家詳細介紹LINQ表達式之前,首先讓大家了解下LINQ表達式簡介,然后全面介紹LINQ表達式。
LINQ表達式簡介
1.OO(面向對象)以外的疆域:信息的訪問與整合。關系數據庫與XML為其中的典型應用。
2.NET Language Integrated Query (LINQ):不采用特定於關系數據庫或者XML的專有方案,而采用通用方案來解決各種信息源的訪問與整合問題。
3.在LINQ中,查詢成為編程語言的一個組成部分,這使得查詢表達式可以得到很好的編譯時語法檢查,豐富的元數據,智能感知等強類型語言的好處。
初識LINQ表達式
- 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表達式解析
- IEnumerable<string> query = from s in names
- where s.Length == 5
- orderby s
- select s.ToUpper();
在語義上等同于如下“方法風格(基于方法)的查詢”:
- IEnumerable<string> query = names
- .Where(s => s.Length == 5)
- .OrderBy(s => s)
- .Select(s => s.ToUpper());
LINQ查詢表達式解析
- 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);
查詢操作符與擴展方法解析
查詢操作符是LINQ中的另外一項重要設施,LINQ使用擴展方法來定義查詢操作符,例如where操作符:
- namespace System.Linq {
- public static class Enumerable {
- public static IEnumerable<T> Where<T>(
- this IEnumerable<T> source, Func<T, bool> predicate) {
- foreach (T item in source)
- if (predicate(item))
- yield return item;
- }
- }
- }
【編輯推薦】