コレクション LINQ

[C#] リスト要素の最小値、最大値を取得する(.Min、.Max)

2021年7月14日

リスト要素の最小値、最大値を取得するには.Min().Max() を使用します。

サンプル

例1)List<int>の最小値、最大値を求める


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

//int型のList
List<int> list = new List<int>(){5, 9, 3, 2, 8};

//要素の最小値を求める
int resultMin = list.Min();

//要素の最大値を求める
int resultMax = list.Max();

結果

resultMin → 2
resultMax → 9

例2)List<Pref>の要素のPopulatioinの最小値、最大値を求める


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

//Prefクラス
class Pref{
  public int No {get; set;}
  public string Name {get; set;}
  public int Population {get; set;}
}

//PrefクラスのList
var list = new List();
list.Add(new Pref{No=1, Name="北海道", Population=5381733});
list.Add(new Pref{No=2, Name="青森県", Population=1308265});
list.Add(new Pref{No=3, Name="岩手県", Population=1279594});
list.Add(new Pref{No=4, Name="宮城県", Population=2333899});
list.Add(new Pref{No=5, Name="秋田県", Population=1023119});

//Pref.Populationの最小値を求める
int resultMin = list.Select(x => x.Population).Min();

//Pref.Populationの最大値を求める
int resultMax = list.Select(x => x.Population).Max();

結果

resultMin → 1023119
resultMax → 5381733

備考

  • LINQを使用するには、「using System.Linq;」の宣言が必要です。
  • リストに要素が存在しない場合は、例外「InvalidOperationException」が発生します。

-コレクション, LINQ