我想要数组中的数字总和并且不超过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();
答案 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中完成。