C#에서는 LINQ의 Max() 메서드와 람다 식을 조합하면 배열에서 가장 큰 요소를 아주 간단하게 찾을 수 있습니다. 이 글에서는 기본적인 사용법부터 절댓값을 기준으로 최댓값을 구하는 방법까지 예제 코드와 함께 단계별로 살펴보겠습니다.
1. 배열 선언하기
먼저 최댓값을 구할 정수형 배열을 선언합니다.
int[] arr = { 10, 90, 20, 19, 99, 57 };
2. Max() 메서드로 최댓값 구하기
배열에서 가장 큰 요소를 얻으려면 System.Linq 네임스페이스에 포함된 Max() 메서드를 사용합니다. 람다 식을 인자로 함께 전달하면 각 요소를 원하는 방식으로 변환한 뒤, 그 결과를 기준으로 최댓값을 계산할 수 있습니다.
arr.Max(element => Math.Abs(element));
위 코드는 각 요소에 Math.Abs()를 적용해 절댓값을 기준으로 최댓값을 구하는 예입니다. 모든 요소가 양수라면 일반적인 최댓값과 동일한 결과를 반환합니다.
3. 전체 예제 코드
using System;
using System.Linq;
class Demo {
static void Main() {
int[] arr = { 10, 90, 20, 19, 99, 57 };
Console.WriteLine(arr.Max(element => Math.Abs(element)));
}
}
실행 결과
99
코드 설명
- using System.Linq; — Max()와 같은 LINQ 확장 메서드를 사용하려면 반드시 선언해야 합니다.
- arr.Max(element => Math.Abs(element)) — 람다 식이 각 배열 요소를 절댓값으로 변환하고, 그중 가장 큰 값인 99를 반환합니다.
- 주의 사항 — 배열이 비어 있으면
InvalidOperationException이 발생합니다. 빈 배열을 다뤄야 하는 경우라면arr.Length검사 또는DefaultIfEmpty()메서드를 활용하는 것이 안전합니다.
이처럼 람다 식과 Max() 메서드를 활용하면 복잡한 반복문 없이도 한 줄의 코드로 배열의 최댓값을 손쉽게 구할 수 있습니다. Min(), Average(), Sum() 등 다른 LINQ 집계 메서드에도 동일한 방식을 적용할 수 있으니 함께 익혀두면 유용합니다.