2012-12-21 211 views
-1

目前,我运行一个循环得到一个项目:使用lambda表达式[ENVDTE]

IList<Project> prjs = SolutionProjects.Projects(); 
Project p = null; 
for (int i = 0; i < prjs.Count; i++) 
{ 
    if (prjs[i].Name == "prj5") 
    { 
     p = prjs[i]; 
    } 
} 

有没有一种方法使用lambda表达式来完成相同的? 谢谢。

+0

-1因为问题没有显示任何研究工作。 – Nope

回答

4

从你的循环,它看起来像你得到哪些条件匹配的最后一个项目,你可以试试Enumerable.LastOrDefault这将返回如果没有找到,则返回最后的itme或null。

Project p = prjs.LastOrDefault(r=> r.Name == "prj5"); 
0
Project p = SolutionProjects.Projects() 
       .Where(p=>p.Name = "prj5") 
       .LastOrDefault(); 
+0

'技术上'它应该是'LastOrDefault'; p – leppie

+0

糟糕,你是对的,修好了,谢谢! :) –

+1

不应''选择'是'.Where'? – Christoffer

2
SolutionProjects.Projects().LastOrDefault(x => x.Name == "prj5")