[IT168 技术文档]谁都知道LinQ是随Oracas(VisualStudio2007)的.NET发布的内置的一个扩展方法,其实整个命名空间都是一个扩展方法的库,它允许开发人员对任何数据类型进行查询。大家都认为这是数据查询的趋势,也许以后的SQL语言会慢慢的发展,但我想现如今大家最想看到的是LinQ带给我们的温暖和快乐。微软把这些扩展的方法放在System.Linq命名空间下,当我们创建一个新类型时,你会发现默认的命名空间中多了一个,在.NET2.0及以前的版本中都只有三个命名空间,现在多了个System.Linq。LinQ定义了标准的查询操作符扩展方法,可以为.NET开发人员用来轻松地查询XML,关系数据库,.NET 对象,和任何其他数据结构类型。Let’s go,下面让我们慢慢体会LinQ带给我们的快乐吧!(版本VSMar07CTP)
下面我们来看看LinQ分别对不同类型的数据进行查询,但由于VSMar07CTP有一个BUG,我们再看下面的例子时首先要去掉这个BUG。在我查看M$Connect时发现已经有人提交了这个BUG,就是web.config中编译通不过,其实去掉那个很简单,我们打开web.config找到<compiler>节点,把子节点注释掉,OK去掉了BUG后我们就可以正常的编译调试了,如下:
1 <system.codedom>
2 <compilers>
3 <compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
4
5 <!--<providerOption name="CompilerVersion" value="v3.5"/>
6 </compiler>-->
7 </compilers>
8 </system.codedom>
9
2 <compilers>
3 <compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
4
5 <!--<providerOption name="CompilerVersion" value="v3.5"/>
6 </compiler>-->
7 </compilers>
8 </system.codedom>
9
由于时间和我写作的底限不长,所以我们先看看对.NET的对象和XML使用LinQ的扩展方法,至于数据库让我们在下一次中慢慢体会。我们首先新建一个类,由于能够给出更直观得效果我直接把图给剪辑过来。但是对于在博客上发表可不是一件很好的做法,代码如下:
在这里.NET3.0中类的简化就不多说了,我们可以不必写隐藏变量了,像上面就可以定义一个实体类了。我们可以用.NET 3.0新的类初始化器和集合初始化器对其进行初始化,代码如下:
初始化时会给我们很爽的智能提示,所以写代码比DotNet2.0真的会少很多。