一个关于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);