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)说的就是这个道理。


浙公网安备 33010602011771号