10 2011 档案
摘要:在前面的系列中,我们已经讨论了LINQ简单查询的大部分特性,了解了LINQ的支持计术和语法形式。至此,我们应该可以创建出大部分相对简单的LINQ查询。在本篇中,除了对前面的知识做个简单的总结,还会介绍几种创建更复杂查询的方式,让我们在面对更复杂的场景时也能轻松面对,包括:子查询、创建策略和数据转换。
阅读全文
摘要:LINQ中大部分查询运算符都有一个非常重要的特性:延迟执行。这意味着,他们不是在查询创建的时候执行,而是在遍历的时候执行(换句话说,当enumerator的MoveNext方法被调用时)。除了下面两种查询运算符,所有其他的运算符都是延迟执行的:1、返回单个元素或者标量值的查询运算符,如First、Count等;2、下面这些转换运算符:ToArray、ToList、ToDictionary、ToLookup。
阅读全文
摘要:书写LINQ查询时又两种语法可供选择:方法语法(Fluent Syntax)和查询表达式(Query Expression)。
LINQ方法语法的本质是通过扩展方法和Lambda表达式来创建查询。C# 3.0对于LINQ表达式还引入了声明式的查询表达式,也叫查询语法,通常来讲,它是创建LINQ查询的更加快捷的方式。尽管通过查询语法写出的查询比较类似于SQL查询,但实际上查询表达式的产生并不是建立在SQL之上,而是建立在函数式编程语言如LISP和Haskell中的list comprehensions(列表解析)功能之上。本篇会对LINQ查询语法进行详细的介绍。
阅读全文
摘要:书写LINQ查询时又两种语法可供选择:方法语法(Fluent Syntax)和查询语法(Query Expression)。
LINQ方法语法是非常灵活和重要的,我们在这里将描述使用链接查询运算符的方式来创建复杂的查询,方法语法的本质是通过扩展方法和Lambda表达式来创建查询。C# 3.0对于LINQ表达式还引入了声明式的查询语法,通过查询语法写出的查询比较类似于SQL查询。本篇会对LINQ方法语法进行详细的介绍。
阅读全文
摘要:在上一篇的LINQ介绍中,我们已经看到了隐式类型变量var,扩展方法(Extension method)和Lambda表达式的身影。没错,他们正是LINQ技术的基石,是他们让LINQ的实现成为可能,并且简化了LINQ表达式的书写。在这一篇中,我将和大家一一探讨C#3.0在语言功能上所作的努力,包括:扩展方法、Lambda表达式和对象初始化器。
阅读全文
摘要:在上一篇的LINQ介绍中,我们已经看到了隐式类型变量var,扩展方法(extension method)和lambda表达式的身影。没错,他们正是LINQ技术的基石,是他们让LINQ的实现成为可能,并且简化了LINQ表达式的书写。在这一篇中,我将和大家一一探讨C#3.0在语言功能上所作的努力,包括:隐式类型局部变量、自动属性和匿名类型。
阅读全文
摘要:LINQ是.NET Framework 3.5的新特性,其全称是 Language Integrated Query,即语言集成查询,是指将查询功能和语言结合起来。从而为我们提供一种统一的方式,让我们能在C#或VB.NET语言中直接查询和操作各种数据。
阅读全文