Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅从参数数组调用某些值的和_C#_Loops - Fatal编程技术网

C# 仅从参数数组调用某些值的和

C# 仅从参数数组调用某些值的和,c#,loops,C#,Loops,我试图找出如何从参数数组中调用10以下所有值的总和 到目前为止,我已经找到了如何调用a值的方法。关于我如何能/应该得到这个数字有什么想法吗 static int SumVals(params int[] vals)//parameter array { int sum = 0; foreach (int val in vals) //for each integer value { sum += val; //su

我试图找出如何从参数数组中调用10以下所有值的总和

到目前为止,我已经找到了如何调用a值的方法。关于我如何能/应该得到这个数字有什么想法吗

static int SumVals(params int[] vals)//parameter array
    {
        int sum = 0;
        foreach (int val in vals) //for each integer value 
        {
            sum += val; //sum equals sum plus val. returns all values added together
        }
        return sum;
    }

    static void Main(string[] args)
    {
        int sum = SumVals(100, 5, 2, 9, 800);
        Console.WriteLine("Summed Values = {0}", sum);
        Console.ReadKey();
    }

在循环中添加if语句以仅添加<10的值

foreach (int val in vals)
{
    if(val < 10)
    {
        sum += val;
    }
}

在循环中添加if语句以仅添加<10的值

foreach (int val in vals)
{
    if(val < 10)
    {
        sum += val;
    }
}
那么:

static int SumVals(params int[] vals)//parameter array
    {
        int sum = 0;
        foreach (int val in vals) //for each integer value 
        {
            if (val >=10) continue;
            sum += val; //sum equals sum plus val. returns all values added together
        }
        return sum;
    }
那么:

static int SumVals(params int[] vals)//parameter array
    {
        int sum = 0;
        foreach (int val in vals) //for each integer value 
        {
            if (val >=10) continue;
            sum += val; //sum equals sum plus val. returns all values added together
        }
        return sum;
    }

这就是你想做的吗

static int SumVals(params int[] vals)
{
    return vals.Where(i => i < 10).Sum();
}

这就是你想做的吗

static int SumVals(params int[] vals)
{
    return vals.Where(i => i < 10).Sum();
}

您可以使用LINQ来实现这一点:

static int SumVals(params int[] vals)//parameter array
{
    return vals.Where(v => v < 10).Sum();
}

你必须把使用系统;您可以使用LINQ执行以下操作:

static int SumVals(params int[] vals)//parameter array
{
    return vals.Where(v => v < 10).Sum();
}
static int SumVals(params int[] vals)//parameter array
{
     return vals.Where(x => x < 10).Sum();
}

你必须把使用系统;是@Denys给出的答案不是我,而是他在用Linq:谢谢你们两位。这会得到期望的结果。在我的学习中,我还没有达到Linq的水平,所以你已经向我介绍了整个领域的能力!再次感谢。是@Denys给出的答案不是我,而是他在用Linq:谢谢你们两位。这会得到期望的结果。在我的学习中,我还没有达到Linq的水平,所以你已经向我介绍了整个领域的能力!再次感谢。贝科兹,你用剑切苹果吗?可枚举的。Where方法有几乎完全相同的代码,那么这种复制有什么意义呢?贝科兹,你用剑切苹果吗?可枚举的。Where方法有几乎完全相同的代码,那么这种复制有什么意义呢?我应该想到这一点。谢谢我应该想到这一点。谢谢
static int SumVals(params int[] vals)//parameter array
{
     return vals.Where(x => x < 10).Sum();
}