Linq查询时机与查询形式

查询步骤:获取数据源、定义查询、执行查询。

观察结论:定义查询后,查询并没有立即执行,而是直到需要枚举结果(遍历)时才被真正执行,这种方式称为“延迟查询(deferred execution)”。

使用“聚合扩展方法”返回单一结果,强制查询立即执行。

 int[] nums = { 1, 4, 9, 3, 2, 5, 3, 2, 3, 5 };
            var list = nums.Where(num => num < 20)
                         .Select(num => num)
                         .OrderBy(num => num)
                         .Count();
            Console.WriteLine(list.ToString ());

           查询定义完后,会立即执行。

           Query Syntax,查询语句方式,一种更接近SQL语法的查询方式,可读性更好,查询语句最后还是要被翻译成查询方法。

int[] nums = { 1, 4, 9, 3, 2, 5, 3, 2, 3, 5 };
            var list = from num in nums
                       where num % 2 != 0
                       orderby num descending
                       select num;
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }

           CLR本身并不理解查询语句,它只理解查询方法,编译器负责在编译时将查询语句翻译为查询方法,大部分查询方法都有对应的查询语句形式:如Select()对应select,OrderBy()对应orderby.

猜你喜欢

转载自blog.csdn.net/qq_37589387/article/details/88559400
今日推荐