[C#]List(リスト)の特定の範囲の合計値を取得するには?

C#

どうも、ちょげ(@chogetarou)です。

Listの指定した範囲の合計値を取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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()を使う方法

コメント

タイトルとURLをコピーしました