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

Vis*_*hal 3 c#

我有一个整数列表 -

List<int> intlist= new List<int>();
Run Code Online (Sandbox Code Playgroud)

我可以说 -

intlist.Sum();//I know sum() is already there as a function but I dont know how I can use it
Run Code Online (Sandbox Code Playgroud)

并获得该列表的总和而不循环它.

Mar*_*ers 11

是的,你可以这样使用Sum.只需将结果分配给某些内容:

int s = intList.Sum();
Run Code Online (Sandbox Code Playgroud)

现在,您可以将列表中的数字总和存储在名为的变量中s.

它实际上是Enumerable.Sum.NET 3.5中添加的扩展方法,它不仅仅适用于列表.

当然在内部这仍然会遍历数字并添加它们,但调用此方法要比自己编写方法容易得多.使用.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;
}
Run Code Online (Sandbox Code Playgroud)

请注意,还有一种Queryable.Sum方法.这允许您在数据库中对数字求和,而无需获取它们并在本地循环它们.相反,可以在数据库中执行求和操作,只返回结果.