我本来应该写一个方法,它会对整数,浮点数或双精度的集合进行加法。我将编写三种方法,它们将遍历三种不同的类型执行添加并返回值。有用。我只是好奇,这是可以在一个单一的方法,该类型传递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