2013-03-31 42 views
0

我們可以將此For循環轉換爲LINQ表達式;在查詢語法和方法語法中?我們可以將這個For-loop轉換成LINQ嗎?

List<INode> sds = new List<INode>(); 

foreach (INode n in lnd) 
{ 
    foreach(string s in Pages) 
    { 
     if (n.NiceUrl == s) 
     { 
      sds.Add(n); 
     } 
    } 
} 
+0

爲什麼?它是可讀的。你不會得到任何性能優勢。 –

+0

嘗試resharper。它只需點擊一下即可完成。嚴格地說,你的問題的正確答案是**是**。如果你問「請爲我做這件事」,這可能會有助於顯示你嘗試過什麼以及你卡在哪裏。 –

回答

1
from n in lnd 
from s in Pages 
where n.NiceUrl == s 
select n 
+0

這是一樣好,因爲它是完全說明性的。 –

0
Pages.Where(y => lnd.Select(x => x.NiceUrl).Contains(y)).Tolist(); 

lnd.Select(X => x.NiceUrl)部分可以用一個HashSet來代替。

1
sds = lnd.Join(Pages, n => n.NiceUrl, p => p, (n, p) => n).ToList(); 
+0

也許關於你的代碼如何工作的一點解釋會對其他讀者有所幫助? – Verbeia

相關問題