我有一个接受IEnumerable-decimals并执行各种数学函数的方法。我想对IEnumerable-int-使用相同的方法。我该如何实施?例如找到一个简单的总和?
void Calculate<T>(IEnumerable <T> ListOFNumbers)
{
int count= ListofNumbers.Count();
?sum=?;
}
Run Code Online (Sandbox Code Playgroud)
这一切都在MiscUtil 中免费提供。本Operator
类提供对通用运算; 和有通用的实现(如扩展方法)Sum
,Average
等-和作品与任何类型的与除原语适合的运算符。例如,您可以将 Sum 与 ofComplex<T>
等一起使用。
请注意,它目前使用 .NET 3.5;我确实在某处有一个 2.0 版本,但它没有经过测试......
使用文档中显示了 sum的简化示例:
public static T Sum<T>(this IEnumerable<T> source)
{
T sum = Operator<T>.Zero;
foreach (T value in source)
{
if (value != null)
{
sum = Operator.Add(sum, value);
}
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
虽然 IIRC 的实际实现有更多......
顺便说一句,请注意dynamic
(在 .NET 4.0 / C# 4.0 中)据说支持运算符,但我们必须等待测试版才能看到它的作用。从我之前dynamic
在 CTP 中的观察来看,我预计它会比 MiscUtil 代码慢一点,但我们会看到。