在向大家详细介绍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
query = from s in names - where s.Length == 5
- orderby s
- select s.ToUpper();
- foreach (string item in query)
- Console.WriteLine(item);
- }
- }
LINQ表达式解析
- IEnumerable
query = from s in names - where s.Length == 5
- orderby s
- select s.ToUpper();
在语义上等同于如下“方法风格(基于方法)的查询”:
- IEnumerable
query = names - .Where(s => s.Length == 5)
- .OrderBy(s => s)
- .Select(s => s.ToUpper());
LINQ查询表达式解析
- Func
, bool> filter = delegate (string s) { - return s.Length == 5;};
- Func
, string> extract = delegate (string s) { - return s; };
- Func
, string> project = delegate (string s) { - return s.ToUpper(); };
- IEnumerable
query = names.Where(filter) - .OrderBy(extract)
- .Select(project);
查询操作符与扩展方法解析
查询操作符是LINQ中的另外一项重要设施,LINQ使用扩展方法来定义查询操作符,例如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;
- }
- }
- }
【编辑推荐】
上一篇:浅谈C 浅谈彩色沥青路面发展
下一篇:探讨Scope属性在C