C#
 Computer >> コンピューター >  >> プログラミング >> C#

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番目の値)を取得します。

これらのメソッドを組み合わせることで、ソートやループ処理を自分で書くことなく、簡潔かつ可読性の高いコードで目的の値を取り出せます。ぜひ実際のプロジェクトでも活用してみてください。

  1. 【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

  2. Pythonでリスト内の最小値を見つける方法を解説

    この記事では、リストの中から最小の数値を見つける方法について、具体的なサンプルコードとともに詳しく解説します。問題の概要問題: 数値のリストが与えられたとき、その中に含まれる最も小さい数値を画面に表示すること。この問題を解くアプローチは主に2つあります。ひとつは sort() メソッドを使ってリストを昇順に並べ替え、先頭の要素(インデックス0)を取得する方法。もうひとつは、Pythonに標準で用意されている組み込み関数 min() を使う方法です。それぞれ順番に見ていきましょう。方法1:sort()メソッドで並べ替えて最小値を取得するまずはリストを昇順にソートし、先頭の要素を取り出す方法です。