c#计算金额
回答
Sum
是LINQ的一部分IEnumerable<T>
的扩展方法。
它会遍历集合中的所有元素,并使用传递的Lambda Expression来获取每个项目的值。他们总结它们并返回结果。
假设frequencies
是含有特定数目已经看到的次数的Dictionary
(即key
是多少,value
是出现计数该号码),这将去了所有的键 - 值对的字典和为每个计算关键*值的乘积并将它们总和起来。 sum方法本身是一个扩展方法,您可以传递一个lambda表达式来说明应该如何添加每个项目。
它使用Sum()
LINQ方法。从MSDN:
计算可以由 调用输入序列中的每个 元素的转换函数而获得的 Double值序列的总和。
它实际上等同于frequencies.Select(value => (value.Key * value.Value)).Sum()
,它覆盖列表/字典中的每个项目,并将字典关键字与它所表示的值相乘。然后它将这些计算值中的每一个加起来。
它使用lambda表达式 - 见http://msdn.microsoft.com/en-us/library/bb397687.aspx
Lambda表达式说“给定值,我将采取值的键和值的价值,以及它们相乘”。 Sum函数可能会将该函数应用于每个频率元素并将每个计算结果相加在一起(我在这里猜测,但没有足够的信息可以说明)。
退房此博文由乔恩斯基特他重新实现总:
我猜的频率是一个IEnumerable如此之和方法实际上是this Sum method它所做的是调用一个方法在每个元素IEnumerable和方法是:
return value.Key * value.Value;
所以偏差是所有这些值的总和。 (这不是偏差)
总和刚刚通过的情况下,集合的键值对
var deviation = frequencies.Sum(value => (value.Key * value.Value))
迭代是
var sum = 0.0M; // or 0.0D; // or what ever type?
foreach(var pair in frequencies) {
sum += (pair.Key * pair.Value);
}
这里短手数总和法的我简单的实现
public static class LinqExt
{
public static decimal? MySum<TSource>(this IEnumerable<TSource> list, Func<TSource,decimal?> selector)
{
decimal? result = 0;
foreach (var p in list)
{
result += selector(p);
}
return result;
}
}
它不检查是否存在任何异常并完全信任传入的参数值为true。此外,我会问社区应该如何初始化小数结果。 可以使用MySum方法酷似点心e.g
List<int> values = new List<int>{1,2,3,4};
var sum = values.MySum(x=>x);
这会给你的所有整数的总和列表
- 1. 计算总金额
- 2. 计算累计佣金额
- 3. 如何计算总金额?
- 4. EmberJs计算总金额
- 5. XSL - 计算金额之和
- 6. 敲除计算金额
- 7. 现金面额计算器
- 8. 如何计算总金额
- 9. JavaScript,计算动态金额
- 10. 用金额阈值计算佣金
- 11. 用于计算金额的计数器
- 12. 从总计和金额中计算总额
- 13. 贝宝金额计算和折扣:(
- 14. AngularJs ngrepeat总金额计算不正确
- 15. 计算期间之间的金额
- 16. 计算所需更改的金额
- 17. SQL查询计算金额基于shiftno?
- 18. 使用SQL服务器计算金额
- 19. Spree计算器 - 金额时间常数
- 20. R:计算年初至今的金额
- 21. 如何计算这笔金额
- 22. SQL查询来计算的金额
- 23. 成本金额的计算物理
- 24. 如何计算计算机下载的金额?
- 25. 计算汽车支付金额无法正确计算
- 26. 金额用C
- 27. c输入金额的最小金额
- 28. 根据C#中计算机设置的格式编号(金额)
- 29. 根据C中的不均匀范围计算金额
- 30. SAS_Conditional累计金额
是。文档可以告诉你。 – SLaks 2011-04-17 19:07:19
未来,请您只要Google它,或者如果您无法理解Google的结果,请粘贴*更多代码*,以便我们确定我们正在查看的内容。一条线是不够的! – 2011-04-17 19:09:45
顺便说一句,你应该接受更多的答案... – digEmAll 2011-04-17 19:20:57