List <int> </int>中int的总和范围

时间:2012-04-23 16:07:32

标签: c# list sum

我认为这将是非常微不足道的,但我无法弄清楚如何去做。我有List<int>,我想总结一系列数字。

说我的清单是:

var list = new List<int>()
{
    1, 2, 3, 4
};

如何获得前3个对象的总和?结果是6.我尝试使用Enumerable.Range但无法使其工作,不确定这是否是最佳方式。

不做:

int sum = list[0] + list[1] + list[2];

2 个答案:

答案 0 :(得分:111)

您可以使用Take&amp; 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

或者,使用OrderByOrderByDescending对您的列表重新排序,然后求和:

var list = new List<int>()
{
    1, 2, 3, 4
};

// 3 + 4
int sum = list.OrderByDescending(x => x).Take(2).Sum(); // Result: 7

如您所见,有许多方法可以完成此任务(或相关任务)。请参阅TakeSumSkipOrderBy&amp; OrderByDescending文档以获取更多信息。

答案 1 :(得分:0)

或者只使用Linq

int result = list.Sum();

总结前三个元素:

int result = list.GetRange(0,3).Sum();