用C#

时间:2016-03-15 10:05:27

标签: c#

我想要数组中的数字总和并且不超过1002我该如何修复它? 不需要总结所有数字,只需要那些符合条件的人

我这样做,但我认为这不是正确的方式

 List<int> list = new List<int> { 4, 900, 500, 498, 4 };
        int sum = list.Skip(2).Take(3).Sum();
        Console.WriteLine(sum);
        Console.ReadLine();

1 个答案:

答案 0 :(得分:0)

目前尚不清楚你想要什么...如果你想总结一些数字,以便总和在达到1002时停止求和你可以:

List<int> list = new List<int> { 4, 900, 500, 498, 4 };
var lst = list.Skip(2).Take(3);

int sum = 0;

foreach (int num in lst)
{
    int sum2 = sum + num;

    if (sum2 > 1002)
    {
        break;
    }

    sum = sum2;
}

Console.WriteLine(sum);

或者你可以

List<int> list = new List<int> { 4, 900, 500, 498, 4 };
var lst = list.Skip(2).Take(3);

int sum = 0;

foreach (int num in lst)
{
    sum += num;

    if (sum >= 1002)
    {
        break;
    }
}

Console.WriteLine(sum);

第一个将停止,如果通过添加一个数字,它将超过1002,而第二个将停止在达到1002之后。

请注意,这些都不能直接在LINQ中完成。