C#中的Linq之查询表达式(一)

我们先看看下面这个例子(该例子来源于MSDN)。

 

 1 class LINQQueryExpressions
 2 {
 3     static void Main()
 4     {
 5 
 6         // Specify the data source.
 7         int[] scores = new int[] { 97, 92, 81, 60 };
 8 
 9         // Define the query expression.
10         IEnumerable<int> scoreQuery =
11             from score in scores
12             where score > 80
13             select score;
14 
15         // Execute the query.
16         foreach (int i in scoreQuery)
17         {
18             Console.Write(i + " ");
19         }            
20     }
21 }
22 // Output: 97 92 81

从上面的代码中不难看出,我们只是做了一件很简单的事:输出数组scores中值大于80的元素。

大家应该都发现了,我们并没有采用直接遍历数组scores的方式,而是用到了类似于sql查询语句的方式来得到我们想要的结果,这种方式就是今天我要说的Linq。

Linq让我们的代码变得更简洁,节省了开发效率。

Linq查询表达式很像我们在数据库中用到的select查询表示式,不同的是关键字的位子有所变化。在传统的sql语句中,select语句的写法是“select ... from ... where ...”,而在Linq中,查询表达式是这样的:“from ...in...where...select..”(多了一个in)。

在这个例子中有一点需要强调一下,Linq查询表达式仅仅只是一个表达式而已,并没有真正开始做查询的操作,真正查询的操作是在执行foreach语句时发生的。下面的图(来自MSDN)说的就是这个道理。

完整的 LINQ 查询操作

 

posted @ 2012-12-09 17:51  Andy_lu  阅读(193)  评论(0)    收藏  举报