连载,LINQ兵法十四章,0(1of1)

hi20140509 2014-05-09 01:13:31
加精
从今天开始,连续一个月的时间,我将分享用LINQ处理数据的全部秘籍,我相信,这套教程将会帮助对LINQ完全陌生的高手成为能用LINQ的数据处理达人。每天分1~2次发布。希望能给大家一些帮助。

序言

我们今天能够获取的数据,比任何时代都要多得多。在学习、工作、研究乃至日常生活中,我们无时无刻不要和大量的数据打交道。我们会借助于计算机,它是处理数据的得力工具。提到数据处理,很多人想到了Excel等电子表软件。然而这些软件看似容易上手,但是功能有很大的局限。它只能从预设好的文件中读取数据,按照一定的操作步骤和预先设定好的功能执行特定的任务。遇到稍微复杂一点的需求,操作起来麻烦不说,而且有些功能实现起来往往和你的期待有很大的差距。虽然Excel提供了很多函数、公式以及VBA的开发接口,但是学习它们同样要花费大量的时间精力,甚至就连专业的程序员也对其中古怪的编程模型感到头痛不已。

于是我们把目光转向了通用的编程语言。自己写程序理论上可以实现任何我们想要的功能。很多人在大学学过一些粗浅的C语言,也有些理工科学生接触过C++、VB以及Java。但是用那些不够系统的知识编写程序总是感觉很难下手。特别是,这些东西是为了编写专业的软件而准备的,它包含了太多面向具体计算机如何执行程序而设定的概念,这些概念对于并不打算成为软件开发者,而仅仅想用计算机的人来说,根本就没有用。我们仅仅想用计算机处理数据,或者说,这才是我们迫切渴望的需求。

纵观各种编程语言,C#语言和Windows操作系统、Office办公软件都是微软创造的,有着天然的亲密关系,C#目前已经成为微软平台事实上的第一编程语言。而大多数人的桌面环境就是微软这一套环境,所以学习C#是有用的。相对来说,C#语言是比较容易学习的,它和C/C++以及Java在语法特性上有类似的地方,所以对于大多数人来说,学习C#并非从头学起,如果你有接触C/C++,那么就有了基础。因此只要学习C#独有的东西,就能很快学会。

很多人印象中C#是一种编写专业软件的编程语言,其实不然,C#语法简单,同样适合编写为了特定目的和任务而设计的小程序。C#最精彩的特性要属LINQ,它是专门用来处理数据的。有了LINQ,我们就从具体的编程命令中抽身出来,将数据看待成一个整体,只要定义好做什么,而怎么做的细节则完全由C#代劳了。然而,LINQ的写法对于只接触过C/C++的人来说,一开始很难适应。现有的文献资料,要么是针对有计算机科学背景的专业人士,从专业的理论加以介绍,一般人看了抓不住要领。要么面向的是专业的开发人员,采用的都是软件项目的案例,或者从开发人员的经验出发来介绍LINQ,比如说大多数的开发者熟悉数据库,用它和LINQ类比,有助于开发人员了解LINQ,可是非开发者根本不懂数据库,用不会的参照学不会的,怎么能看懂呢》还有一些是快餐式的文章,它会举出很多例子,看上去很不错,可是没有深入原理,结果你看着都会,自己写就写不出来了。

如果不能真正学会和掌握LINQ,就无法体会到它的实用和强大。我想写一篇针对非开发者的教程,从头说起,帮助大家由浅入深掌握LINQ这件强大的工具。使得它成为你处理数据的好帮手。

本教程的写作思路大致是分3个阶段,首先针对有C语言基础的读者,介绍C#中独有的语法知识,这些语法可以看成是对C语言语法的自然延伸。学会了它们,就基本能读能写C#程序。然后我们用这些知识,自底而上带领大家自己去实现LINQ,自己实现的好处有两个,一个是更加深入理解LINQ每个操作是干嘛的,以及是怎么实现的,这使得你使用LINQ就仿佛在调用自己写的函数,自己调用自己的代码还会觉得困难么?另一个是,在这个过程中不断强化写程序的感觉,说到底,编程序和学说话一样,知识固然重要,但是要写的熟练、得心应手,想到什么就能写出什么,还是需要大量的练习。在带领读者编写这些代码的过程中,不知不觉让你对C#感到熟悉。在这个过程中,我们会不断介绍一些零碎的知识点和有用的库函数。带着一个具体的场景出现,让你首先看到怎么用,然后你再去查阅文档或者网上Google相关的细节,这样便于理解。接下来,我们会详细介绍LINQ的用法,不同于大多数的著作,我们并非贪大求全地列举全部的知识点,相反,我们只介绍了很少的一些LINQ查询,但是我们会讨论一些细节,这样做的好处是,让你学就彻底学会。而不是一知半解。特别是,我们会演示实现相同的操作,我们往往有很多不同的办法,注重启发你的思维,让你自己去举一反三而不是仅仅记忆了而不会用。在这个过程中你也可以体会到LINQ的无所不能和无处不在。最后,我们介绍数据的输入、输出,我们针对非专业开发者的实际需要,安排了一些场景,一些地方,我们重在展示思路和方法,告诉读者,可以这样做和你可以用什么去做。相信有了这样的介绍,读者一定能把学到的东西投入到自己实际的场景中去。

本教程并没有涉及数据库和更深入的查询表达式的介绍。因为我觉得,这些知识对于大多数人来并不是非常必要,它们都属于本教程篇幅之外的东西了。

下一篇
...全文
1237 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧