我有一个整数列表 –
List<int> intlist= new List<int>();
我可以说 –
intlist.Sum();//I kNow sum() is already there as a function but I dont kNow how I can use it
并获得该列表的总和而不循环它.
解决方法
是的,你可以像这样使用Sum.只需将结果分配给某些内容:
int s = intList.Sum();
现在,您将列表中的数字总和存储在名为s的变量中.
它实际上是.NET 3.5中添加的扩展方法Enumerable.Sum
,它不仅仅适用于列表.
当然在内部这仍然会遍历数字并添加它们,但调用此方法要比自己编写方法容易得多.使用.NET Reflector,您可以看到实现非常简单:
public static int Sum(this IEnumerable<int> source) { if (source == null) { throw Error.ArgumentNull("source"); } int num = 0; foreach (int num2 in source) { num += num2; } return num; }
请注意,还有一个Queryable.Sum
方法.这允许您在数据库中对数字求和,而无需获取它们并在本地循环它们.相反,可以在数据库中执行求和操作,只返回结果.