2012-12-21 167 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")