我有一个整数列表 -
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
并获取该列表的总和而不循环使用它。
答案 0 :(得分:11)
是的,您可以像这样使用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
方法。这允许您在数据库中对数字求和,而无需获取它们并在本地循环它们。相反,sum操作可以在数据库中执行,只返回结果。
答案 1 :(得分:2)
要计算列表的总和,您需要在添加项目时计算它或稍后查看列表。如果你调用一个遍历列表的函数,或者自己查看列表,那就没什么区别了。
所以,回答你的问题,不,除非你在添加项目时计算总和。
这是什么语言,它的价值是什么?
答案 2 :(得分:0)
此link可能会对您有所帮助。
“”您想要计算C#编程语言中整数数组或整数列表中所有数字的总和。 LINQ中的Sum扩展方法以最少的调用代码提供了一种很好的方法,但是有一些缺点和优点。在这里,我们看看如何在C#语言中使用System.Linq命名空间中的Sum扩展方法,查看数组上的示例和List“”