c# - 我可以直接添加一个整数列表而不循环遍历它吗?

标签 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

并在不循环遍历的情况下获取该列表的总和。

最佳答案

是的,您可以像那样使用Sum。只需将结果分配给某物即可:

int s = intList.Sum();

现在您将列表中数字的总和存储在名为 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;
}

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

关于c# - 我可以直接添加一个整数列表而不循环遍历它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2993522/

相关文章:

c# - EF 核心 Web API : foreign key validation

c# - 如何使用 Fluent NHibernate 和多个数据库识别特定实体的 session 工厂

c# - 下载硬盘中的AssetBundle

c# - 如何拒绝直接访问页面

c# - FFmpeg 文件转换格式和文件扩展名

c# - XPath 和属性

c# - csproj.csdat 文件有什么用

javascript - ASP.NET MVC AJAX 将参数传递给 Controller

c# - UserControl 中的自定义控件无法正确呈现

c# - IDE/编译器如何知道一个 lambda 表达式被立即执行而不是被保存以备后用?