我认为这将是微不足道的,但我无法解决该怎么做。我有一个List<int>
,我想对一系列数字求和。
说我的清单是:
var list = new List<int>()
{
1, 2, 3, 4
};
我如何获得前三个对象的总和?结果是6。我尝试使用Enumerable.Range
它,但无法使其正常工作,不确定是否这是最好的解决方法。
不做:
int sum = list[0] + list[1] + list[2];
我认为这将是微不足道的,但我无法解决该怎么做。我有一个List<int>
,我想对一系列数字求和。
说我的清单是:
var list = new List<int>()
{
1, 2, 3, 4
};
我如何获得前三个对象的总和?结果是6。我尝试使用Enumerable.Range
它,但无法使其正常工作,不确定是否这是最好的解决方法。
不做:
int sum = list[0] + list[1] + list[2];
Answers:
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
,然后求和:
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
了解更多信息的文档。