关于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,新建一个项目,项目类型你喜欢。
要操作数据,自然少不了数据源,当然这里简单的示例,就没必要用数据库了。
轻松一点,我们来一个简单的整型数组。
  1. int[] mySource = new int[] { 20, 35, 15, 16, 72, 64, 58, 73, 99, 48 };
现在,我们把大于等于50的整数筛选出来。
  1. IEnumerable<int> result =
  2. from n in mySource
  3. where n >= 50
  4. select n;
  5. Console.WriteLine(">= 50 的数字如下:");
  6. foreach (int i in result)
  7. {
  8. Console.Write("\t{0}", i);
  9. }
运行一下,我们可以看到结果如下:

好了,LINQ的基本语法就说到这里,更复杂的语法,会在后面系列文章中聊。

LINQ简记(1):基本语法的更多相关文章

  1. C#3.0新增功能09 LINQ 基础07 LINQ 中的查询语法和方法语法

    连载目录    [已更新最新开发文章,点击查看详细] 介绍性的语言集成查询 (LINQ) 文档中的大多数查询是使用 LINQ 声明性查询语法编写的.但是在编译代码时,查询语法必须转换为针对 .NET ...

  2. Linq to sql 的语法

    Linq to SQL 语法查询(子查询 & in操作 & join ) 引用地址:http://www.cnblogs.com/82767136/articles/2949541.h ...

  3. LINQ to Entities 查询语法

    转自: http://www.cnblogs.com/asingna/archive/2013/01/28/2879595.html 实体框架(Entity Framework )是 ADO.NET  ...

  4. Linq之查询表达式语法详解

    1.闲言碎语 由于项目的需要接触到Linq,刚开始有些不适应,好多概念都很模糊.不过经过一段时间的摸索,慢慢地对Linq有了一个更加深入的了解.在此记录一下备忘.      2.查询表达式语法 执行L ...

  5. 让LINQ中的查询语法使用自定义的查询方法

    使用LINQ时有两种查询语法:查询语法和方法语法 查询语法:一种类似 SQL 语法的查询方式 方法语法:通过扩展方法和Lambda表达式来创建查询 例如: List<, , , }; //查询语 ...

  6. LINQ 学习路程 -- 查询语法 LINQ Query Syntax

    1.查询语法 Query Syntax: from <range variable> in <IEnumerable<T> or IQueryable<T> ...

  7. LINQ简记(2):重要概念

    为了能让初学者更快速地掌握,在系列文章中,我尽可能地避开理论讲解,一则对于入门者来说,过多的理论叙述反而会降低大家学习编程的兴趣,二则,官方文档的资料很详细,我说了也是废话.因此,我会尽可能地多举些简 ...

  8. LINQ简记(3):子句

    LINQ查询表达式的子句如select,where,from等都是比较简单的子句,相信各位多练习练习,再结合MSDN的例子,基本上是可以理解的,因此,本文只挑几个有代表性的,以及有些难理解的子句来简述 ...

  9. LINQ TO SQL 常用语法

    LINQ To SQL中IN的用法   IN: C# var result = from s1 in context.Customers where (new string[] { "UK& ...

随机推荐

  1. MongoDB使用初步

    我很快就要离开现在这个使用nodejs + mongodb + redis的项目,转而去搞 塞特ID 之类的别的项目了.可惜这些技术对我来说浅尝辄止,半生不熟,胎死腹中.业余时间自学当然也可以,但哪有 ...

  2. 搜狗输入法APP的2个剪切板内容获取入口

    搜狗输入法APP的2个剪切板内容获取入口

  3. Redis主节点内存占用过高

    0. 基本情况 Redis采用集群模式,560个主节点,主从比为1:1,单台机器上为16个节点.info memory观察到主节点A单个Redis内存used_memory_rss_human为9.2 ...

  4. [算法基础]斐波那契(recursion+loop)两种方式执行时间对比

    一.斐波那契数列求第n项两种方式 1.递归(自上而下)def recur_fibonacci(n): if n <= 0: return 0 if n == 1: return 1 return ...

  5. Flink编程练习

    目录 1.wordcount 2.双流警报EventTime 3.持续计数stateful + timer + SideOutputs 4.一定时间范围内的极值windowfunction + che ...

  6. Android Studio笔记

    1. toolbar xml: <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:la ...

  7. jeesite ckfinder mac/linux 文件上传路径设置

    背景: 如果你使用的是Mac 或者 Ubuntu 这种 Unix系统的话,你一定知道Unix系统的文件路径分隔符是 / 而Windows系统文件分隔符是 \ 当你设置了jeesite.properti ...

  8. Android SDK Manager 无法更新问题(转载)

    先看看如何加快更新速度,再说如何更新. 首先更新host文件,如图,打开目录 C:\Windows\System32\drivers\etc,在目录下有hosts文件 打开方式选用“记事本”打开 将一 ...

  9. C. Searching for Graph(cf)

    C. Searching for Graph time limit per test 1 second memory limit per test 256 megabytes input standa ...

  10. js判断出两个字符串最大子串的函数

    <!DOCTYPE html><html><head> <title></title></head><script typ ...