C#でリスト内の最大値・最小値・2番目に大きい値・2番目に小さい値を検索する方法
C#では、LINQ(System.Linq)を活用することで、配列やリストの中から最大値、最小値、さらには2番目に大きい値・2番目に小さい値も簡単に取得できます。この記事では、Max()、Min()、OrderByDescending()、OrderBy() などのメソッドを使った具体的な手順を、サンプルコードとともにわかりやすく解説します。
使用するデータの準備
まず、対象となる整数の配列を用意します。
var val = new int[] {
99,
35,
26,
87
};最大値・最小値の取得
最大値は Max() メソッドで取得できます。
val.Max(z => z);
同様に、最小値は Min() メソッドを使用します。
val.Min(z => z);
2番目に大きい値・2番目に小さい値の取得
2番目に大きい値を求めるには、OrderByDescending() で要素を降順に並べ替え、Skip(1) で先頭の1件をスキップした上で、First() により次の要素を取得します。
val.OrderByDescending(z => z).Skip(1).First();
2番目に小さい値の場合は、OrderBy() で昇順に並べ替えてから同じ操作を行います。
val.OrderBy(z => z).Skip(1).First();
完全なサンプルコード
以下に、ここまでの処理をすべて含んだプログラム全体を示します。
using System;
using System.Linq;
public class Program {
public static void Main() {
var val = new int[] {
99,
35,
26,
87
};
var maxNum = val.Max(z => z);
Console.WriteLine("Maximum Number: " + maxNum);
var minNum = val.Min(z => z);
Console.WriteLine("Minimum Number: " + minNum);
var secondMax = val.OrderByDescending(z => z).Skip(1).First();
Console.WriteLine("Second Largest Number: " + secondMax);
var secondMin = val.OrderBy(z => z).Skip(1).First();
Console.WriteLine("Second Smallest Number: " + secondMin);
}
}実行結果
Maximum Number: 99 Minimum Number: 26 Second Largest Number: 87 Second Smallest Number: 35
ポイントまとめ
- Max() / Min():LINQの集計演算子で、シーケンス内の最大値・最小値をそれぞれ返します。
- OrderByDescending() / OrderBy():要素をそれぞれ降順・昇順に並べ替えます。
- Skip(1).First():並べ替え後の先頭要素を除外し、その次の要素(=2番目の値)を取得します。
これらのメソッドを組み合わせることで、ソートやループ処理を自分で書くことなく、簡潔かつ可読性の高いコードで目的の値を取り出せます。ぜひ実際のプロジェクトでも活用してみてください。
-
【Python】バブルソートでリスト内の2番目に大きい数値を見つける方法
バブルソートを使ってリスト内の2番目に大きい数値を求める場合、まずリストの要素を並べ替えるためのメソッド(ここでは「bubble_sort」)を定義します。並べ替えが完了したら、末尾から2番目の要素を返す「get_second_largest」などのメソッドを定義し、結果を取得します。 以下に具体的な実装例を示します。 サンプルコード my_list = [] my_input = int(input(Enter the number of elements...)) for i in range(1,my_input+1): b=int(input(Enter the element
-
Pythonでリスト内の最小値を見つける方法を解説
この記事では、リストの中から最小の数値を見つける方法について、具体的なサンプルコードとともに詳しく解説します。問題の概要問題: 数値のリストが与えられたとき、その中に含まれる最も小さい数値を画面に表示すること。この問題を解くアプローチは主に2つあります。ひとつは sort() メソッドを使ってリストを昇順に並べ替え、先頭の要素(インデックス0)を取得する方法。もうひとつは、Pythonに標準で用意されている組み込み関数 min() を使う方法です。それぞれ順番に見ていきましょう。方法1:sort()メソッドで並べ替えて最小値を取得するまずはリストを昇順にソートし、先頭の要素を取り出す方法です。