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)
{
//迭代在查詢定義的時(shí)候不會(huì)進(jìn)行,而是在執(zhí)行每個(gè)foreach語(yǔ)句時(shí)執(zhí)行
//每次迭代中使用查詢時(shí),都會(huì)調(diào)用擴(kuò)展方法
List strs = new List { "關(guān)羽", "張飛", "馬超", "黃忠", "趙云" };
var query = from r in strs
where r.StartsWith("張")//查找集合中元素匹配第一個(gè)的元素
orderby r
select r;
Foreach(query);//輸出:張飛
strs.Add("張昭");
strs.Add("張合");
strs.Add("張遼");
strs.Add("曹操");
Foreach(query);//輸出:張飛,張合,張遼,張昭
Console.ReadKey();
//==========================================兩次輸出不變(值添加到集合里面去了)
List strs2 = new List { "關(guān)羽", "張飛", "馬超", "黃忠", "趙云" };
var query2 = (from r in strs2
where r.StartsWith("張")//查找集合中元素匹配第一個(gè)的元素
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("=========================");
}
}
}
網(wǎng)頁(yè)標(biāo)題:推遲查詢的執(zhí)行
文章地址:
http://weahome.cn/article/gcijjs.html