繁体   English   中英

c#中int数组中选定值的总和

[英]Sum of selected values in an int Array in c#

我正在学习如何使用 c# 进行编程。 我真的很陌生。 我的问题是我正在尝试创建一个显示 10 个数字的数组。 我希望我的代码检查 10 以下的哪些数字可以被 3 或 5 整除并求和。 我尝试使用 .Sum() 函数,但表示 int 不包含 Sum 的定义。 我已经在我的程序中使用了 System.Linq。 有谁知道如何使这笔款项发生?

        {

            int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            int sum = 1 + 2;
            

            foreach (int n in numbers)
            {
                if (n % 3 == 0 || n % 5 == 0)
                {
                    int total = n.Sum();
                     Console.WriteLine(total);
                }
                else
                {
                    Console.WriteLine("not divisible");
                }
            }`
   

所以你的问题是你试图在一个int类型的变量n上调用.Sum() (你在这里定义它: foreach (int n in numbers) ,这不是一个方法。

使用 LINQ,您可以执行以下操作:

var numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var total = numbers.Where(n => n % 3 == 0 || n % 5 == 0).Sum();

每个人都忘记了数组应该包含 10 个数字,但有些数字值可能大于 10。只应检查小于 10 的数字值。 所以正确答案应该是

var numbers = new int[] { 1, 9, 5, 6, 8, 10,4, 15, 25, 3};
var total = numbers.Where( n => (n<10) && ( n % 3 == 0 || n % 5 == 0)).Sum();

如果我理解正确并使用您的代码,这就是您想要的。

        int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        int sum = 1 + 2;
        int total=0;

        foreach (int n in numbers)
        {
            if (n % 3 == 0 || n % 5 == 0)
            {
                int total += n;
            }
            else
            {
                Console.WriteLine("not divisible");
            }
        }
        Console.WriteLine(total);

我将打印移到 foreach 之后,以便在完成后得到一个结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM