2014-05-22 64 views
2

Resharper極大地簡化了一個循環,但現在它正在擾亂我一個未使用的變量,我該如何幹淨地做到這一點?foreach和方法組

foreach (Field Test in Line.Where(IsStartKey)) 
    Phase = ScanPhase.Processing; 
... 
private static bool IsStartKey(Field Test) 
{ 
    return Test.Value.StartsWith("Cabinet Name"); 
} 

測試當然是在原始中使用,但在簡化後沒用。該線正在被標記,但沒有建議改進。

回答

5

看起來你甚至不需要循環。您只需要知道Line是否有任何所需的項目。 Enumerable.Any可以這樣做:

if (Line.Any(IsStartKey)) 
    Phase = ScanPhase.Processing; 
+0

是不是'IsStartKey'需要一個參數? – hatchet

+0

@hatchet它得到一個參數:http://stackoverflow.com/questions/6988730/convert-to-method-group-resharper –

+0

@PrestonGuillot - 謝謝,這不是我用過的功能,所以沒有認出它。 @mikez - 因爲我們不知道foreach循環中還有什麼,我們可以肯定Any是否等同?如果有三件物品通過'IsStartKey'測試,那麼如果在物體中應該執行三次不同的事情呢? – hatchet