C#のLINQ Sum()メソッドでリストの合計値を求める方法
C#のLINQには、コレクション内の要素の合計を簡単に計算できるSum()メソッドが用意されています。このメソッドを使うことで、ループ処理を書かずに1行で数値の合計を求められます。
ここでは、整数型の要素を持つListを例に、Sum()メソッドの使い方を解説します。
サンプルデータ(整数のリスト)
まず、整数要素を含むリストを用意します。
List<int> list = new List<int> { 99, 34, 77, 75, 87, 35, 88};Sum()メソッドで合計を求める
次に、AsQueryable()でシーケンスをIQueryable型に変換し、Sum()メソッドを呼び出して合計を取得します。
list.AsQueryable().Sum();
以下は、整数要素を持つリストの合計値を求める完全なサンプルコードです。
コード例
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
List<int> list = new List<int> { 99, 34, 77, 75, 87, 35, 88};
int res = list.AsQueryable().Sum();
Console.WriteLine("Sum = {0}", res);
}
}実行結果
Sum = 495
ポイントまとめ
- Sum()はIEnumerableやIQueryableなど、数値型のシーケンスに対して使用できます。
- AsQueryable()を使うと、リストをIQueryableとして扱えるため、LINQプロバイダー経由でのクエリ実行にも対応できます。
- List<int>に対しては、直接
list.Sum()と書いても同じ結果が得られます。 - 戻り値は要素の型に応じた数値型(この場合はint)になります。
-
【初心者向け】C#のLINQ Whereメソッドの使い方を徹底解説!条件に合う要素を抽出する方法
C# LINQのWhereメソッドとは? C#のLINQに用意されているWhereメソッドは、指定した条件(述語:Predicate)に基づいて、コレクションや配列の中から該当する要素だけを抽出(フィルタリング)するためのメソッドです。 データの一覧から特定の条件を満たす項目のみを取り出したい場面は開発現場で非常に多く、WhereメソッドはLINQの中でも特に使用頻度の高い機能といえます。 例えば、以下のように記述すると「70以上の要素」だけを取得できます。 Where((n, index) => n >= 70); このラムダ式では、各要素 n が70以上であるかどうかを判定し、
-
C# LINQ Distinct()メソッドでリストから重複要素を削除する方法
C#のLINQで重複しない要素(一意の値)だけを取得したい場合は、Distinct()メソッドを使用します。このメソッドは、シーケンス内の重複する要素を取り除き、各要素を1度だけ返してくれます。 重複要素を含むリストの準備 まずは、重複した要素を含むリストを用意しましょう。 List<int> points = new List<int> { 5, 10, 5, 20, 30, 30, 40, 50, 60, 70 }; このリストには「5」と「30」がそれぞれ2回含まれています。 Distinct()メソッドで重複を除去する 重複を除いた要素を取得するには、次のように