using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace linq
{
class Program
{
static void Main(string[] args)
{
int[] ints = new int[] { 1, 2, 3 };
var items = from i in ints
select i;
foreach (var n in items)
{
Console.WriteLine (n);
// Console.ReadLine();
} ints[0] = 11;
ints[1] = 22;
ints[2] = 33; var ii = from s in items
select s; foreach (var n in ii)
{
Console.WriteLine(n); }
Console.ReadLine(); }
}
}
结果是 1 2 3 11 22 33
我是想问linq是有查询延迟。。
foreach (var n in items)
{
Console.WriteLine (n);
// Console.ReadLine();
}在这句话的时候执行创建元素。既然已经创建了。。为什么下面会变值 难道要执行
var items = from i in ints
select i;这句话两次。。每次用items都执行吗。。不懂
select i).ToList();延迟查询,你可以这样理解: 当程序需要使用到查询结果内的数据时(Console.WriteLine),才会去数组内取数据当用.ToList()破坏了延迟查询时,第一次代码执行到.ToList()就会立刻去数据组查询数据,并存储到内存中