我可以直接添加整数列表而不通过它循环吗?

时间:2010-06-07 22:04:55

标签: c#

我有一个整数列表 -

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

并获取该列表的总和而不循环使用它。

3 个答案:

答案 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“”