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

Bal*_*i C 68 c# sum list

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

说我的清单是:

var list = new List<int>()
{
    1, 2, 3, 4
};
Run Code Online (Sandbox Code Playgroud)

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

没有做:

int sum = list[0] + list[1] + list[2];
Run Code Online (Sandbox Code Playgroud)

Jam*_*ill 113

您可以使用Take&完成此操作Sum:

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

// 1 + 2 + 3
int sum = list.Take(3).Sum(); // Result: 6
Run Code Online (Sandbox Code Playgroud)

如果要从其他地方开始总结范围,可以使用Skip:

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

// 3 + 4
int sum = list.Skip(2).Take(2).Sum(); // Result: 7
Run Code Online (Sandbox Code Playgroud)

或者,使用OrderBy或重新排序列表OrderByDescending,然后加:

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

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

如您所见,有许多方法可以完成此任务(或相关任务).见Take,Sum,Skip,OrderByOrderByDescending了解更多信息的文档.

  • 很棒的解决方案:] (4认同)

小智 11

或者直接使用 Linq

int result = list.Sum();
Run Code Online (Sandbox Code Playgroud)

总结前三个元素:

int result = list.GetRange(0,3).Sum();
Run Code Online (Sandbox Code Playgroud)