LINQ查询可以返回两种类型的结果----枚举和标量(scalar)的单一值
1 namespace ConsoleApplication46 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 int[] numbers = { 2, 5, 28 }; 8 9 IEnumerable<int> lowNums = from n in numbers //返回枚举数 10 where n < 20 11 select n; 12 13 int numsCount = (from n in numbers //返回一个数 14 where n < 20 15 select n).Count(); 16 17 foreach (var item in lowNums ) 18 { 19 Console.Write("{0} ", item); 20 } 21 Console.WriteLine(); 22 23 Console.WriteLine("{0} ", numsCount ); 24 } 25 } 26 }
等号左边叫做查询变量
总结:
如果查询表达式返回枚举,查询一直到处理枚举时才会执行
如果枚举被处理多次,查询就会执行多次
如果在进行遍历之后,查询执行之前数据有改动,则查询会使用新的数据
如果查询表达式返回标量,查询立即执行,并且把结果保存在查询变量中