【发布时间】:2012-09-19 15:16:50
【问题描述】:
给定代码:
from i in this.GridViewFoo.SelectedItems
select new EmployeeEntity
{
EmployeeID = (i as EmployeeDto).EmployeeID,
Email = this.GetAllEmail((i as EmployeeDto).Email, (i as EmployeeDto).SecondaryEmails),
EmployeeNumber = (i as EmployeeDto).EmployeeNumber,
FirstName = (i as EmployeeDto).FirstName,
LastName = (i as EmployeeDto).LastName
}
在安全转换(i as EmployeeDto) 之后,我可能会收到 NullReferenceException。我怎样才能确保代码的安全性,又不会因为大量的 null 检查而使他超负荷?
解决方案概述:
我做了一些测试来判断解决方案是否有效。两者都运行良好并带来相同的结果,您可以查看HERE。之后我用OfTypeSolution 和letSolution 做了一些性能测试。
由于 OfType 解决方案的平均时间更好,这就是答案!
【问题讨论】:
标签: c# linq nullreferenceexception