C#プログラミング入門:ラムダ式を使って配列から最小要素を取得する方法
C#では、Min()メソッドとラムダ式を組み合わせることで、配列の中から最小の要素を簡単に見つけることができます。この記事では、具体的なコード例を通じてその方法を解説します。
配列の宣言
まず、対象となる整数型の配列を宣言します。
int[] arr = { 10, 15, 5, 20};Min()メソッドとラムダ式による最小値の取得
配列から最小の要素を取得するには、System.Linq名前空間に含まれるMin()メソッドを使用します。ラムダ式を引数として渡すことで、各要素に対して任意の処理(変換)を行った上で最小値を求めることも可能です。
arr.Min(element => Math.Abs(element));
上記の例では、ラムダ式 element => Math.Abs(element) によって各要素の絶対値を計算し、その中で最も小さい値を返します。Math.Abs()は負の数を正の数に変換するメソッドのため、たとえば配列に「-5」が含まれていても「5」として評価されます。
完全なサンプルコード
以下は、実際に動作する完全なプログラムです。
using System;
using System.Linq;
class Demo {
static void Main() {
int[] arr = { 10, 15, 5, 20};
Console.WriteLine(arr.Min(element => Math.Abs(element)));
}
}実行結果
5
このプログラムでは、配列内の各要素(10、15、5、20)に対してMath.Abs()で絶対値を求め、Min()メソッドがその中で最小の「5」を返しています。
補足:単純に最小値を取得したい場合
絶対値などの変換処理が不要で、単に配列内の最小値を取得したいだけであれば、ラムダ式を省略して次のように書くこともできます。
Console.WriteLine(arr.Min()); // 出力: 5
このように、Min()メソッドはLINQの強力な機能の一つであり、ラムダ式と組み合わせることで柔軟なデータ操作が可能になります。
-
Pythonで配列内の最大の要素を見つける方法を解説
この記事では、「配列の中から最大の要素を求める」という問題の解決方法について詳しく解説します。 問題の概要 問題文:与えられた配列に対して、その中で最も大きい要素を計算して求める必要があります。 ここではブルートフォース(総当たり)アプローチを使用します。これは、配列全体を先頭から順番に走査しながら各要素を比較し、その時点での最大値を更新していくというシンプルかつ確実な手法です。 実装例 以下に具体的なコードを示します。 # 最大値を求める関数 def largest(arr, n): # 最大要素の初期値として最初の要素を設定 max = arr[0] # 配列全体を
-
Pythonで2次元配列からk番目に小さい要素を求めるプログラム
n×n のユーザー入力による整数行列と値 k が与えられたとき、その2次元配列の中から「k番目に小さい要素」を見つけるのが本記事の目的です。この問題は、Python標準ライブラリの heapq モジュールを使うことで効率的に解決できます。 heapqモジュールとは heapq(ヒープキュー)は、Pythonでヒープ構造(優先度付きキュー)を扱うためのモジュールです。このモジュールの特徴は、毎回ヒープの中で最も小さい要素が取り出される「最小ヒープ(min heap)」として動作する点にあります。また、nsmallest() メソッドを使うことで、データ集合の中から最小のn個の値を簡単に取得するこ