关于LIST.Select().ToList()慢的问题
2013-06-28 14:30
316 查看
var sendlist = emailList.Select(email => new MailMessage { MailServer = SMTPServer, UserName = Sender, PassWord = EmailPassword, ServerCode = ServerCode, ToAddr = email.Email, BCC = string.Empty, CC = string.Empty, Title =Tittle, Body = Content, BodyText = Description, }).ToList();
代码如上,emailList是一个List<T>,有五万条记录,结果上面的代码运行居然要用到半小时才完成。经多次调试,的确是时间主要在Lambda表达式上。因为SMTPServer是一个全局变量,并非局总变量,每一行都要重新去获取。
只是一个全局变量就这么慢,那么如果是一个函数呢。
代码变成如下:
var mailServer = SMTPServer var sendlist = emailList.Select(email => new MailMessage { MailServer = mailServer, UserName = Sender, PassWord = EmailPassword, ServerCode = ServerCode, ToAddr = email.Email, BCC = string.Empty, CC = string.Empty, Title =Tittle, Body = ToContent(Content), BodyText = Description, }).ToList();
结过测试,也当出现同样的情况。
为此,在写类似的代码时,不要出现全局变量和函数。
如果非要用到呢?
全局变量的解决方法:把全局变量的值赋给一个局部变量就行了。
如:
var mailServer = SMTPServer var sendlist = emailList.Select(email => new MailMessage { MailServer = mailServer, UserName = Sender, PassWord = EmailPassword, ServerCode = ServerCode, ToAddr = email.Email, BCC = string.Empty, CC = string.Empty, Title =Tittle, Body = Content, BodyText = Description, }).ToList();函数的方法,暂时没有想到别的方法,只能在修改业务了。
贴子链接http://bbs.csdn.net/topics/390500602
相关文章推荐
- 关于LIST.Select().ToList()慢的问题
- 关于出现WARNING: unable to write jarlist cache file ...\appcompat_v7\bin\jarlist.cache 问题详解
- 关于list集合传到jsp,在struts的select标签中显示下拉列表问题
- net.sf.ezmorph.bean.MorphDynaBean cannotbe cast to xxx 关于JSON对象解析List<XXX>在调用时出错问题
- 关于java myBatis selectList 问题
- 关于出现List的java.util.ConcurrentModificationException异常问题的解决
- 关于Mysql Can't connect to mysql server on localhost(10061)的问题解决
- Java解决No enclosing instance of type PrintListFromTailToHead is accessible问题的两种方案
- android关于The connection to adb is down, and a severe error has occured.这个问题的解决办法
- mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题
- 关于hibernate中双向外键关联one-to-one的property-ref=的问题
- 关于Qt报出Undefined reference to vtable for xxx的问题
- 【WEBAPI】关于WEBAPI无法获取数据的问题之一(Issues while making a POST to a Web API from JQuery)
- 关于List.remove在for循环中出现问题的解决方案
- [原]关于Linux AS4 自启动Postgresql出现Do you want to choose a different one?问题
- 关于java加载dll文件一直报Unable to load library的问题
- 关于使用ui-select出现Error: [ui.select:choices] htt错误的问题
- 关于新浪微博SSO授权时出现 Weibo-authorize Failed to receive access token by SSO 的问题解决
- 关于Xilinx MicroBlaze应用modelsim se仿真问题(EDK:3593 - Unable to locate the precompiled library microblaze_v8_50_c)
- 关于JavaScript中toSource问题的小结