2014-02-19 65 views
0

代碼:如何將foreach嵌套循環轉換爲linq格式?

foreach (var testItem in testItems.TestChildren) 
{ 
    RadTreeViewItem testParent1 = new RadTreeViewItem(); 
    parent1.Header = NodeHeader(testItem.TestPath, testItem.TestName, TestSelectedPath, TestProjectData); 
    testParent1.TestTag = testItem; 
    foreach (var testChild in testItem.TestChildren) 
    { 
     RadTreeViewItem testChildren = new RadTreeViewItem(); 
     testChildren.TestHeader = NodeHeader(testChild.TestPath, testChild.TestName, TestSelectedPath, TestProjectData); 
     testChildren.TestTag = testChild; 
     testParent1.Items.Add(testChildren); 
    } 
    TestParent.TestItems.Add(testParent1); 
} 

如何將上述foreach嵌套的循環轉換爲LINQ?另外,是否有可能進一步減少代碼行數並提高性能並縮短執行時間?

+0

@Noobacode,我主要關注這裏的表現。 –

+0

請參閱鏈接http://stackoverflow.com/a/18340552/2911047 –

+0

@CodingGuru,感謝您的鏈接。我指的是,但我沒有找到一個適當的解決方案,以'Linq'格式使用時如何使用'ItemCollection'。 –

回答

3

Linq是用於過濾/選擇/投影,而不是突變。 Linq不會給你的問題代碼的任何性能優勢代碼將更難以理解。

+0

這是正確的。你可以進一步說LINQ會造成輕微的性能下降,因爲無論如何它都會轉換爲循環。轉換在運行時需要時間。 – MoonKnight