关于LINQ(语言集成查询)是.NET 3.5和Visual Studio 2008以上版本中引入的一种有趣的全新概念,语言版本有VB和C#,由于C#与.NET平台结合最为紧密,也是MS当初首推的语言,因此,本系列文章的示例代码都使用C#。
MSDN上资料非常详细和完备,所以,我也不打算讲得过于详尽,再说,网上也有不少博文都阐述过LINQ,如果我还炒冷饭,就有抄袭之嫌。
其实,很多时候我们不必要到处去搜,到处去问人,MSDN上的参考文档已经很优秀了,而且还有多语言版本,也请了牛B人物进行人工翻译,所以说啊,咱们.NET开发者是非常幸运的,一来有VS这个世界级领先的开发工具(目前不好的一点是性能,据说微软正在努力解决),微软一直都希望其产品大众化,市场化,我们也看到了这个大巨头在努力完善;二来,拥有MSDN这么神奇的参考文档。我们完全有理由相信,真的是幸运的,Jdk没有这么详细完备的文档,更别说中文版;PHP也没有如此强劲的参考文档,难道,我们不应该认为,使用.NET是最轻松的吗?
噢,废话说得多了一点,还是不说了,回归正题。好的,开门见山,先说说LINQ有些啥好处,相信很多人都会先问这个问题。
SQL语句我想各位不会陌生了,在企业级应用项目中,我们是无法避免与数据库打交道,同时也说明,我们避不开要写SQL语句,这样一来,你又要抽出N多时间去学习SQL的语法和相关知识,或者,你们团队会找人专门搞数据库,或者你一个人担起这个艰巨的任务。
XQurey和XPath听过了吧,我想,很多人都用过,就算不用你也肯定听过的,除非你是当年参加抗日战争的老兵。好了,这时候又说要用XML查询了,你又要抱着一本厚厚的书去学习XML查询,你累不累?
有了LINQ就不一样了,敏捷开发自然需要一些新玩意儿来提高效率,这时候,你就爽歪歪了,改革开放的春风吹遍大江南北,LINQ的暖流也可以让我们把编程变成一种享受而不是体力活。
要干好LINQ就得从语法开始,其实和SQL很像,后面你会发现的,总体的语法规则可以归为下面两句话:
1、以from打头;
2、以select子句或group子句结尾。
是不是这样呢?少吹牛,一起来动手实践一下。
启动VS,新建一个项目,项目类型你喜欢。
要操作数据,自然少不了数据源,当然这里简单的示例,就没必要用数据库了。
轻松一点,我们来一个简单的整型数组。
- int[] mySource = new int[] { 20, 35, 15, 16, 72, 64, 58, 73, 99, 48 };
现在,我们把大于等于50的整数筛选出来。
- IEnumerable<int> result =
- from n in mySource
- where n >= 50
- select n;
- Console.WriteLine(">= 50 的数字如下:");
- foreach (int i in result)
- {
- Console.Write("\t{0}", i);
- }
运行一下,我们可以看到结果如下:
好了,LINQ的基本语法就说到这里,更复杂的语法,会在后面系列文章中聊。