读书人

一个关于linq效率的小疑点

发布时间: 2012-03-16 16:34:56 作者: rapoo

一个关于linq效率的小问题
现在想获得一个list中符合某条件的一个元素,如果超过一个则返回默认的第一个,如果没有则返回null

现在实现方式有两种
一:
var result = from t in tProjectORGs where t.CLASSID == tProjectGeneral.ID select t;
if (result.Count() > 0)
{
return result.ToList()[0];
}
else
{
return null;
}

二:
IList<AGSDM_PROJECT> tProjectInORGs = tProjectORGs.Where(t => t.CLASSID == tProjectGeneral.ID).ToList();
if (tProjectInORGs.Count > 0)
{
return tProjectInORGs[0];
}
else
{
return null;
}

请问哪种效果更优??

[解决办法]
上面两种编译后基本没什么区别,要用也是优先选用三目判断
其实写成下面这样最简单
var result = tProjectORGs.FirstOrDefault(p => p.CLASSID == tProjectGeneral.ID);

读书人网 >.NET

热点推荐