关于LIST.Select().ToList()慢的问题
2013-06-28 20:00
435 查看
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()慢的问题
- net.sf.ezmorph.bean.MorphDynaBean cannotbe cast to xxx 关于JSON对象解析List<XXX>在调用时出错问题
- 关于list集合传到jsp,在struts的select标签中显示下拉列表问题
- 关于java myBatis selectList 问题
- 关于出现WARNING: unable to write jarlist cache file ...\appcompat_v7\bin\jarlist.cache 问题详解
- 关于linux中select 方法延迟问题-----当我while select 后
- 关于useradd: unable to open password file的问题
- jsf 关于f:selectItems 出现验证错误的问题
- 大数据【关于ssh: connect to host master port 22: Connection timed out问题的总结】
- 关于运行期异常:Failed to instantiate [java.util.List]: Specified class is an interface
- 如何回答关于List和Set的问题
- 关于 npm WARN checkPermissions Missing write access to 问题的解决办法
- UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题
- 关于List的一个小问题——remove()函数
- 关于android SDK安装Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml出错
- 关于select中fd限制问题
- android关于设置list_item高度问题
- 关于网站域名访问出现welcome to nginx 的问题
- 关于线程编程中“undefined reference to 'pthread_create'等问题的解决
- 关于程序在64位系统上运行报错的问题:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_