Linq解决方案

Linq

int[] arrayInt = { 6, 3, 8, 2, 5, 2 };
var numQuery1 =
                from arr in arrayInt
                orderby arr
                where (arr % 2) == 0
                select arr;
foreach (var item in numQuery1)
            {
                Console.Write("{0,1}", item);
            }

在Linq中,查询变量本身只是存储查询命令,创建查询仅仅是声明查询变量,此时并不执行任何操作,也不返回任何数据。Linq在随后执行查询时,才执行查询变量中声明的查询操作,并返回结果数据。但是这里还没执行查询的时候却有了结果,怎么回事?
Linq解决方案
Linq解决方案
------解决方案--------------------
你的当前调试语句肯定在你贴出的这个图之后,你贴这个图实际上是误导人。

当你调试断点在声明 numQuery1 的语句之后,而你又在“监视”窗口查看 numQuery1 变量的值,它当然就执行查询并返回了结果数据。