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
 strs = new List
 { "关羽", "张飞", "马超", "黄忠", "赵云" };            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
 strs2 = new List
 { "关羽", "张飞", "马超", "黄忠", "赵云" };            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
 s)        {            foreach (string item in s)            {                Console.WriteLine(item);            }            Console.WriteLine("=========================");        }    }}