LINQ延迟求值和主动求值
在延迟求值的情况下,只是定义了一个查询,而且不是立刻执行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | List< int > list = new List< int >() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var temp1 = from c in list where c > 5 select c; var temp2 = ( from c in list where c > 5 select c).ToList< int >(); Console.WriteLine(temp1.GetType()); Console.WriteLine(temp2.GetType()); list[0] = 11; Console.WriteLine( "temp1: " ); foreach ( var item in temp1) { Console.WriteLine(item.ToString() + " " ); } Console.WriteLine( "\n temp2: " ); foreach ( var item in temp2) { Console.WriteLine(item.ToString() + " " ); } Console.WriteLine( "Hello World!" ); |
延迟求值:预定义一个查询语句而已,但不会直接查询出来,也就不会占用内存空间。
直接求值:立马查询出来,占用内存空间;如果数据量很大则不适用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】