int的总和范围在List <int>中
我认为这将是相当微不足道的,但我不能解决如何做到这一点。 我有一个List<int>
,我想总结一个范围的数字。
说我的名单是:
var list = new List<int>() { 1, 2, 3, 4 };
我如何得到前三个对象的总和? 结果是6.我尝试使用Enumerable.Range
但不能得到它的工作,不知道如果这是最好的方式去做。
没有做:
int sum = list[0] + list[1] + list[2];
你可以用Take
& Sum
完成这个工作:
var list = new List<int>() { 1, 2, 3, 4 }; // 1 + 2 + 3 int sum = list.Take(3).Sum(); // Result: 6
如果你想总结一个从其他地方开始的范围,你可以使用Skip
:
var list = new List<int>() { 1, 2, 3, 4 }; // 3 + 4 int sum = list.Skip(2).Take(2).Sum(); // Result: 7
或者,使用OrderBy
或OrderByDescending
重新sorting列表,然后求和:
var list = new List<int>() { 1, 2, 3, 4 }; // 3 + 4 int sum = list.OrderByDescending(x => x).Take(2).Sum(); // Result: 7
正如你所看到的,有很多方法可以完成这个任务(或者相关的任务)。 请参阅Take
, Sum
, Skip
, OrderBy
和OrderByDescending
文档以获取更多信息。