我认为这将是非常微不足道的,但我无法弄清楚如何去做。我有List<int>
,我想总结一系列数字。
说我的清单是:
var list = new List<int>()
{
1, 2, 3, 4
};
如何获得前3个对象的总和?结果是6.我尝试使用Enumerable.Range
但无法使其工作,不确定这是否是最佳方式。
不做:
int sum = list[0] + list[1] + list[2];
答案 0 :(得分:111)
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
&amp; OrderByDescending
文档以获取更多信息。
答案 1 :(得分:0)
或者只使用Linq
int result = list.Sum();
总结前三个元素:
int result = list.GetRange(0,3).Sum();