Linq查询对象集合 -- Linq to Object
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Linq_to_Object查询集合 { class Program { static void Main(string[] args) { //初始化要查询的数据 List<int> inputArray = new List<int>(); for (int i = 0; i < 10; i++) { inputArray.Add(i); } Console.WriteLine("使用老方法来对集合对象查询,查询结果为:"); OldQuery(inputArray); Console.Read(); } //使用foreach 返回集合中的为偶数的元素 private static void OldQuery(List<int> inputArray) { //创建用来保存查询结果的集合 List<int> queryResults = new List<int>(); foreach (int item in inputArray) { //判断元素是偶数的情况 if (item % 2 == 0) { queryResults.Add(item); } } //输出查询结果 foreach (int item in queryResults) { Console.Write(item + " "); } } } }
使用 Linq查询 升级 :
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Linq_to_Object查询集合 { class Program { #region 使用新方法进行查询操作 static void Main(string[] args) { //初始化要查询的数据 List<int> inputArray = new List<int>(); for (int i = 0; i < 10; i++) { inputArray.Add(i); } Console.WriteLine("使用Linq方法来对集合对象查询,查询结果为:"); LinqQuery(inputArray); Console.Read(); } private static void LinqQuery(List<int> collection) { //创建查询表达式来获取集合中为偶数的元素集合 var queryResults = from item in collection where item % 2 == 0 select item; //输出查询结果 foreach (var item in queryResults) { Console.Write(" " + item + " "); } } #endregion } }
总结:
Linq的查询表达式是建立在Lambda表达式和扩展方法的基础上的,而且Lambda表达式又是建立在委托基础上,扩展方法也属于方法,所以,Linq的本质还是对方法的调用;
Linq的本质(Lambda表达式和扩展方法的组合);