2013-12-18 20 views
0

求和時排除數組中元素的最簡潔方法是什麼?C#排除array.sum中的元素

例子:

array.sum(exclude index 5); 
+3

從陣列中刪除的項目? – 2013-12-18 18:21:53

+2

@ChristmasUnicorn:或者只是在求和後減去它。 –

回答

5

如果您堅持使用LINQ這一點,那麼你可以使用TakeSkip做到這一點。假設索引5處的項目將被忽略,則需要索引0-4處的值,因此您將前5個項目,然後將其與第5個索引後面的項目連接,以便跳過前6個項目。

array.Take(5).Concat(array.Skip(6)).Sum(); 

更好的解決方案,如馬特Burland在評論指出並Mike Christensen在他的回答中指出,是總結整個列表,只是減去你要忽略單個值。

+1

你也可以這樣做:array.Select((x,i)=> i == 5?0:x).Sum();' –

+0

@SebastianPiu Yup,另一種有效的方法 - 儘管我仍然相信Mike的答案提供了最合適的方法。 – Anthony

6

而不是試圖建立一個臨時數組或跳過該值,它可能會更快,只是從和中減去的array[5]值:

array.Sum() - array[5] 
+0

這個。使用正確的工具來完成正確的工作。 – Anthony