2016-06-08 15 views

回答

0

您可以改用ForEach方法作爲expression-body。現在你的表情看起來像這樣:

void SomeMethod() => ListOfInt.ForEach(value => {collect+=count;}); 
+0

'列表 .ForEach()'不是LINQ的一部分。 – svick

+0

你說得對,我編輯了我的答案。 –

0

最簡單的解決方案是不使用表達式體例如

void SomeMethod() 
{ 
    foreach(int value in ListOfInt) 
    collect += count; 
} 
1

顧名思義,它首先是一個表達式。表達式被評估爲一個值,而你的SomeMethod沒有。你可以爭辯說它確實返回void,它在C#中是有效的。關鍵是do表達體方​​法使你的代碼更具可讀性。如果沒有,請不要使用它。

直接轉換爲表達體方法,而不是簡化當前代碼更有意義。鑑於僅在問題的代碼,它可以如果計數從值來計算要寫入

collect += ListOfInt.Count() * count; 

,那麼它可以是

collect += ListOfInt.Select(value => ...calculate count ...).Sum(); 

或槓桿Enumerable.Aggregate爲複雜的邏輯。

訣竅是將foreach語句轉換爲表達式。然後將整個方法轉換爲表達式更容易。

相關問題