スポンサーリンク

[C# LINQ]最大・最小の項目をもった要素を取得する[MaxBy・MinBy]

C#10で追加されたLINQのMaxByメソッド、MinByメソッドを使うと最大・最小の項目を持った要素を取得することができるようになりました。
この記事ではMaxByメソッド、MinByメソッドの使い方を紹介します。

最大の項目を探すにはMaxByメソッド、最小の項目を探すにはMinByメソッドを使います。
それぞれの第1引数に対象の項目を返すメソッドを指定します。
戻り値はそれぞれ最初に見つかった最大、最小の項目を持つ要素になります。

using System;
using System.Collections.Generic;
using System.Linq;

namespace TestProject;
class Program
{
    static void Main() {

        var list1 = new List<(int ID, string Name)> { 
            (1, "YasNote"), (2, "Name1"), (1, "Name5"), (3, "Name2"), (4, "Name3"), (4, "Name4")
        };
        //最大の項目を持つ要素を取得
        var max_element = list1.MaxBy(x => x.ID);
        Console.WriteLine($"最大:{max_element}");

        //最小の項目持つ要素を取得
        var min_element = list1.MinBy(x => x.ID);
        Console.WriteLine($"最小:{min_element}");
    }
}
最大:(4, Name3)
最小:(1, YasNote)

指定した項目の最大値、最小値や合計のみを知りたい場合はこちらの方法で取得することが出来ます。

[C# LINQ] 配列、リスト各要素の合計、最小値、最大値を求める
配列、コレクションの合計を取得するにはSumメソッド、各要素の中から最小値を取得するにはMinメソッド、最大値を取得するにはMaxメソッドを使います。LINQを使うにはソースの先頭にusing System.Linq;を付けてくだ...

¥3,520 (2022/04/28 19:09時点 | Amazon調べ)
¥2,750 (2022/04/28 19:18時点 | Amazon調べ)

C# プログラミング講座に戻る

コメント