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]; 

你可以用TakeSum完成这个工作:

 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 

或者,使用OrderByOrderByDescending重新sorting列表,然后求和:

 var list = new List<int>() { 1, 2, 3, 4 }; // 3 + 4 int sum = list.OrderByDescending(x => x).Take(2).Sum(); // Result: 7 

正如你所看到的,有很多方法可以完成这个任务(或者相关的任务)。 请参阅TakeSumSkipOrderByOrderByDescending文档以获取更多信息。