`
wangxiaohigh
  • 浏览: 1425234 次
文章分类
社区版块
存档分类
最新评论

LINQ in Action 一书第二章翻译原稿(第二章C# and VB.NET语言增强)

 
阅读更多

第二章C# and VB.NET语言增强

本章包括:

C# 3.0 和 VB.NET 9.0怎样使用LINQ

隐式类型化局部变量

对象初始值设定项

lambda 表达式

扩展方法

匿名类型

在第 1 章我们讨论使用 LINQ 的动机,并引入一些代码来让您了解如何工作。在本章我们将介绍该语言。

使用LINQ允许查询混合到编程语言的扩展。LINQ 是C# 和 VB.NET 语言的扩展并使用新结构。在学习之前很重要的是回到LINQ身上来,本章是解释LINQ如何让 C# 和 VB.NET 语言已变得如此丰富。请注意我们在使用linq是很成熟的。我们讲解LINQ重点时间不能太长,因此本章不能详细讲解每一部分功能。当您熟悉各种功能的时候,本章将使您了解本书是如何讲解问题的。在第 3 章我们将重点讲诸如表达式目录树和查询运算符的特定于 LINQ 的概念。然后在第三章您会用到LINQ相关功能。

2.1发现新的语言增强功能

NET 2.0 奠下了很多 LINQ 需要协同工作的基础。事实上,它引进多项重要的语言和 Framework 增强功能。例如.NET 现在支持泛型类型,以及需以达到深入数据集成的 LINQ 目标,可以参数化的类型 —

否则类型系统不够丰富。C# 2.0 还添加匿名方法和迭代器。这些功能作为新的数据和编程语言之间的集成级别的基石。

我们预期这本手册的读者了解基本.NET 2.0 提供的功能。我们将您提供 2.4 节中的匿名方法上的复修我们提出 lambda 表达式和我们将检讨第 3 章中的迭代器时。 LINQ 公开诸如 C# 和 VB.NET 语言的查询语法更多的功能。 C# 3.0 和 VB.NET 9.0 (也称为 VB 2008年) 生成泛型、 匿名方法和迭代器,作为 LINQ 设施的主要组件。这些功能包括,

1、隐式类型化的许可证的局部变量从表达式用于初始化它们推断出类型本地变量。

2、对象初始值的构造和对象的初始化。

3、lambda 表达式提供的作为发展匿名方法改进的类型推断和转换为委托类型和表达式目录树,我们将在下一章讨论。

4、扩展方法令可以扩展现有的类型和构造的类型与其他方法。 使用扩展方法类型不是扩展,但看起来像是扩展。

5、匿名类型,这是自动推断出,并从对象初始值设定项创建的类型。

而不用只列出这些新的语言功能和详列他们逐一,对发现他们而言,是一个持续的示例。这有助于我们清楚了解他们可以帮助我们在日常的编码。

我们将与最简单的代码可能使用唯一的.NET 2.0 构造启动,然后我们将的逐步引入新的语言功能改善。

每个重构的步骤将指向特定问题或语法功能。首先,让我们熟悉简单的示例: 应用程序输出运行进程的列表。

2.1.1运行进程通用列表

我们要获取的我们计算机上运行的进程的列表。在系统中是很轻松的。引用Diagnostics.Process.GetProcesses API。

注意 在示例中我们使用GetProcesses方法,因为它返回的结果,可能会因每次一个泛型列表被调用该方法而不同。这使得我们的示例比会基于一个静态列表的项目更切合实际。

表2.1简单的目标的示例 C# 2.0 代码。

表2.1示例.NET 2.0 代码列出进程

using System;

using System.Collections.Generic;

using System.Diagnostics;

static class LanguageFeatures

{

static void DisplayProcesses()

{

List<String> processes = new List<String>();//准备字符串的列表

foreach (Process process in Process.GetProcesses())

processes.Add(process.ProcessName);//生成的进程的列表

}

static void Main()

{

DisplayProcesses();//打印到屏幕每一行。

}

}

我们进程变量指向的字符串列表。我们使用该类型基于泛型类型List<T>。在.NET 2.0 中最重要的是添加了泛型的支持。它们允许我们最大化代码重用、 类型安全和性能。就像我们现在做的最常见使用泛型是创建强类型的集合的类。您将注意到 LINQ 广泛使用泛型。在该列表,我们使用一个名为ObjectDumper类来显示结果。ObjectDumper 是作为 LINQ 代码示例的一部分由 Microsoft 提供一个实用工具类。在整个这本书的很多代码示例中,我们将重复使用 ObjectDumper类。(这些示例的完整源代码是在 http://LinqInAction.net可供下载。)可用于 ObjectDumper 转储对象到控制台的内存中。尤其是用于调试目的;我们将使用它在这里显示我们处理结果。

这个版本的代码并没有更多的功能,只是将进程名称加入的到列表中。控制台程序将每个进程显示出来。然而,在未来的示例中,我们将有更复杂的结果以显示。ObjectDumper 将然后保存我们一些代码为我们做工作显示出来。

这是 2.1 制作某些示例输出

firefox

Skype

WINWORD

devenv

winamp

Reflector

这个示例是十分简单的。很快,我们将希望能够对此列表进行筛选、排序它,或执行其他操作如分组或预测。让我们修改这个示例。关于进程名称,我们会有更感兴趣的信息。

2.1.2在类中对结果进行分组(p77)

分享到:
评论

相关推荐

    Professional ASP.NET 3.5 SP1 Edition: In C# and VB(part1)

    2008 along with the multitude of language improvements in C# 2008 and Visual Basic® 2008 as well as powerful new technology called LINQ, together with the ASP.NET 2.0 Framework you already know and ...

    VB.NET LINQ各项查询操作示例

    这是accessoft上,作者:煮江品茶 写的一个...摘 要:【VB.NET小品】LINQ标准操作符示例 正 文: LINQ是VS中的一个通用的数据查询技术,该技术简化了对SQL、XML等数据的查询。本示例介绍LINQ的标准查询符的使用方法。

    ASP.NET3.5入门经典:涵盖C#和VB.NET(第5版)pdf

    《ASP.NET3.5入门经典:涵盖C#和VB.NET》(第5版)是一本非常好的ASP.NET入门书籍。《ASP.NET3.5入门经典-涵盖C#和VB.NET》以建立一个实际的Web站点为主线,从最初的没有任何功能的简单站点开始,然后逐步增加功能和...

    LINQ in Action 书中源码 C# VB

    LINQ in Action 书中源码 C# VB

    LINQ vb.net - Sample Queries实例

    很多常用的Linq写法,基于Vb.net,本人收获良多 LinqSamples LinqToSQLSamples LinqToXMLSamples LinqToDataSetSamples 举例:Linq to sql Dim categories = From prod In db.Products _ Group By Key = New With ...

    C# .net LINQ TO SQL 进阶入门经典

    C# .net LINQ TO SQL 进阶入门经典,C# .net LINQ TO SQL 进阶入门经典 C# .net LINQ TO SQL 进阶入门经典

    《Linq In Action》中文PDF版

    《LINQ实战》第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用...

    C# 7 and .NET Core: Modern Cross-Platform Development - Second Edition

    C# 7 and .NET Core: Modern Cross-Platform Development - Second Edition by Mark J. Price English | 24 Mar. 2017 | ASIN: B01N8UG78Q | 594 Pages | AZW3 | 23.26 MB Modern Cross-Platform Development ...

    ASP.NET 3.5入门经典--涵盖C#和VB.NET(Wrox)

    全书的示例代码均用C#和VB.NET两种语言表示,读者可自由地选择自己喜欢的语言。 本书适合于任何想利用ASP.NET进行Web开发的初中级程序员。不要求有Web开发经验。 ASP.NET畅销书之一,Web站点开发人员首选的入门...

    Pro C# 7: With .NET and .NET Core

    Now in its 8th edition, you’ll find all the very latest C# 7.1 and .NET 4.7 features here, along with four brand new chapters on Microsoft’s lightweight, cross-platform framework, .NET Core, up to ...

    ASP.NET 4.5.1入门经典(in C# and VB) pdf原版[18MB]

    ASP.NET4.5.1入门经典(第8版)是一本综合性ASP.NET4.5.1入门指南,将为ASP.NET新手奠定坚实基础,并使尚不熟悉4.5.1版本重要更新的开发人员透彻了解关键细节。本书将介绍使用微软的免费ASP.NET Web应用开发工具Visual...

    Professional C# 4 and .NET 4

    the C# 4 language version will be synonymous with writing code in in Visual Studio 2010, and you can use it to write Windows applications, Web apps with ASP.NET, and Windows Mobile and Embedded CE ...

    LINQ TO ADO.NET

    Language-Integrated Query (LINQ) 定义了一组可以在 .NET Framework 3.0 编程语言中使用的通用标准查询运算符。 使用这些标准查询运算符可以投影、筛选和遍历内存中的集合或数据库中的表。 请注意,LINQ 查询使用...

    LINQ in Action PDF

    LINQ in Action。In Action系列的外文书籍。

    Concurrency in .NET: Modern patterns of concurrent and parallel programming

    Concurrency in .NET teaches you how to build concurrent and scalable programs in .NET using the functional paradigm. This intermediate-level guide is aimed at developers, architects, and passionate ...

    Wrox.Professional.C#.2012.and.NET.4.5

    This guide is geared towards experienced programmers looking to update and enhance their skills in writing Windows applications, web apps, and Metro apps with C# and .NET 4.5. Packed with information ...

    linq.rar_.net_C# LInq_linq _linq .net3.0

    .NET 3.0 Linq,非常方便实用.

    asp.net包括LINQ和c#面试题

    非常全面的c#面试题技术 有LINQ c# asp.net的 经典实用

    《C#与.NET 4高级程序设计:第5版》源码

    此为《C#与.NET 4高级程序设计:第5版》中文版一书的源码。 Amazon超级畅销书,权威新版王者归来 全面涵盖C# 2010,用IL深入揭示语言特性 多位微软MVP联手翻译,名著佳译相得益彰 本书是C# 领域久负盛名的经典著作...

    ASP.NET+3.5入门经典——涵盖C#和VB.NET(第5版)

    这是一本非常好的ASP.NET入门书籍。本书以建立一个实际的Web站点...全书的示例代码均用C#和VB.NET两种语言表示,读者可自由地选择自己喜欢的语言。本书适合于任何想利用ASP.NET进行Web开发的初中级程序员。不要求有W...

Global site tag (gtag.js) - Google Analytics