2015-12-06 79 views
0

娛樂我試圖減少一些代碼到儘可能少的行,我碰到一種模式,我不能完全弄清楚如何減少到1行。作爲一個例子我有以下:如何從這2行代碼中刪除冗餘變量

bool redundant;  
Enumerable.Range(1, 5).ToList().ForEach(x => redundant = x % 2 == 0 ? ListOfEvens.Add(x): false); 

可以在上述2襯墊的「通過5加1的偶數」與不同的語法被改寫成1個襯墊?我認爲這應該是可行的,因爲一行只是簡單地聲明一個其他的冗餘變量。

回答

1
Enumerable.Range(1, 5).ToList().ForEach(x => { if (x % 2 == 0) ListOfEvens.Add(x);}); 
7

我不是100%肯定的ListOfEvens類型是什麼,但假設它是List<int>你可以使用AddRange

ListOfEvens.AddRange(Enumerable.Range(1, 5).Where(x => x % 2 == 0)); 
+0

我能得到這個工作,謝謝!這只是一個例子,在我的原始代碼ListOfEvens是不同的HashSet ,但沒有理由我不能更新它是一個列表,讓我使用AddRange – wentimo