int[] arr = new int[]{1, 3, 5, 7 ,9}; var result = from s in arr where s < 5 select s; //from select in 为组成不可缺少的关键字 //这里通过var隐式的定义返回结果 当然我们可以指定具体的类型 iEnumable<int> //因为我们知道数组的类型 大多数情况下可以通过var让程序自动判定返回的类型 // 其中 s 默认识别类型为int 当然我们也可以定义一个明确的类型 比如object IEnumerable<object> result2 = from object ss in arr select ss; foreach (int t in result) { Console.WriteLine(t); } foreach (var tt in result2) { Console.WriteLine(tt.GetType()); //int32 自动识别 } // linq查询只是将查询语句放进临时变量中,真正的查询要在以后的循环中执行 // 这种查询方法为延迟查询 与其对立的为 立即强制查询 Console.WriteLine(result2.Count()); Console.WriteLine(result2.First()); Console.WriteLine(result2.Last()); Console.WriteLine(result2.Max()); // 以上类似这些的只能返回单个值 var result3 = (from tt in arr select tt).ToList(); Console.WriteLine(result3.GetType()); // 通过toList() toArray() 缓存结果集 Console.ReadKey(true);