linq的延迟执行和立即执行
延迟执行
static void QueryOverInts() { int[] numbers = new int[] {10,20,30,40,1,2,3,8}; //获取偶数 var subset = from q in numbers where q % 2 == 0 select q; //linq语句在这个地方执行,前面的from语句没有真正的运算,这叫做的linq的延迟执行, //利用这个,我们可以为相同的容器执行多次应用相同的ling查询。 foreach (var i in subset) { Console.WriteLine(i); } //修改数组中的一些数据 numbers[0] = 4; foreach (var j in subset) Console.WriteLine(j); Console.ReadKey(); }
如果希望立即执行,可以调用有Enumberable类型定义的许多扩展方法来完成,如Toarry<T>(),Tkey(),ToList<T>()等方法。
//获取偶数 var subset = (from q in numbers where q % 2 == 0 select q).ToList();