2014-05-22 49 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