码迷,mamicode.com
首页 > 其他好文 > 详细

推迟查询的执行

时间:2014-09-14 19:26:48      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:推迟查询的执行   where   c#linq   

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            //迭代在查询定义的时候不会进行,而是在执行每个foreach语句时执行
            //每次迭代中使用查询时,都会调用扩展方法
            List<string> strs = new List<string> { "关羽", "张飞", "马超", "黄忠", "赵云" };
            var query = from r in strs
                        where r.StartsWith("张")//查找集合中元素匹配第一个的元素
                        orderby r
                        select r;
            Foreach(query);//输出:张飞
            strs.Add("张昭");
            strs.Add("张合");
            strs.Add("张辽");
            strs.Add("曹操");
            Foreach(query);//输出:张飞,张合,张辽,张昭
            Console.ReadKey();

            //==========================================两次输出不变(值添加到集合里面去了)
            List<string> strs2 = new List<string> { "关羽", "张飞", "马超", "黄忠", "赵云" };
            var query2 = (from r in strs2
                         where r.StartsWith("张")//查找集合中元素匹配第一个的元素
                         orderby r
                         select r).ToList();//ToArray()  ToEnumerable()
            Foreach(query2);//输出:张飞
            strs2.Add("张昭");
            strs2.Add("张合");
            strs2.Add("张辽");
            strs2.Add("曹操");
            Foreach(query2);//输出:张飞
            Console.ReadKey();
        }

        static void Foreach(IEnumerable<string> s)
        {
            foreach (string item in s)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("=========================");
        }
    }
}

本文出自 “程序猿的家” 博客,请务必保留此出处http://962410314.blog.51cto.com/7563109/1552567

推迟查询的执行

标签:推迟查询的执行   where   c#linq   

原文地址:http://962410314.blog.51cto.com/7563109/1552567

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!