我本來應該寫一個方法,它會對整數,浮點數或雙精度的集合進行加法。我將編寫三種方法,它們將遍歷三種不同的類型執行添加並返回值。有用。我只是好奇,這是可以在一個單一的方法,該類型傳遞AA泛型類型來完成,像如何使用泛型爲多種數據類型創建通用方法?
public static T SUM<T>(IEnumerable<T> dataCollection)
{
T total;
foreach(var value in dataCollection)
total += value;
return total;
}
我能夠正常三法實現,但只是好奇,想解決它,就是它甚至可能嗎?
感謝,
很好的解釋。 – Nair 2012-03-12 21:42:47
當然,這只不過是一個roll-your-own的Aggregate()函數,因爲傳遞的lambda可以是從左到右的任何內容。 – KeithS 2012-03-12 21:45:28
@Nair,請注意,這個函數已經存在[Enumerable.Aggregate](http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aggregate.aspx),請嘗試使用它相反,除非你這樣做來學習一些東西。 – 2012-03-12 21:46:42