どうも、ちょげ(@chogetarou)です。
Listの指定した範囲の合計値を取得する方法を紹介します。
方法

Listの特定の範囲の合計値を取得する方法は、2つあります。
Skip() + Take() + Sum()
1つは、Skip()とTake()、System.LinqのSum()を使う方法です。
まず、System.Linqを導入します。
using System.Linq;
次に、ListからSkip()を呼び出し、Skip()の引数に範囲の最初の位置を指定します。
Skip()からTake()を呼び出し、Take()の引数に要素数を指定します。
そして、Take()からSum()を呼び出します。
//startの位置からcountの要素数分の範囲の合計
var sum = list.Skip(start).Take(count).Sum();
上記のSum()は、Skip()の引数からTake()の引数分の範囲の合計を返します。
使用例
using System;
using System.Linq;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
List<int> numbers = new List<int>() {1, 2, 3, 4, 5, 6, 7, 8};
int sum = numbers.Skip(2).Take(5).Sum();
Console.WriteLine(sum); //25
}
}
GetRange() + Sum()
もう1つは、GetRange()とSum()を使う方法です。
まず、System.Linqを導入します。
using System.Linq;
次に、ListからGetRange()を呼び出します。
GetRange()の第1引数には範囲の最初の位置、第2引数に要素数を指定します。
そして、GetRange()からSum()を呼び出します。
var sum = list.GetRange(start, count).Sum();
使用例
using System;
using System.Linq;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
List<int> numbers = new List<int>() {1, 2, 3, 4, 5, 6, 7, 8};
int sum = numbers.GetRange(2, 5).Sum();
Console.WriteLine(sum); //25
}
}
まとめ
Listの特定の範囲の合計値を取得する方法は、次の2つです。
- Skip()とTake()、Sum()を使う方法
- GetRange()とSum()を使う方法
コメント