C#에서 배열이나 목록에 담긴 값들 중 특정 기준값보다 큰 요소를 찾아야 하는 경우가 자주 있습니다. 예를 들어 다음과 같은 정수 배열에서 80보다 큰 숫자만 골라내고 싶다고 가정해 보겠습니다.
int[] arr = new int[] {55, 100, 87, 45};기본 원리
핵심 아이디어는 간단합니다. 배열의 처음부터 끝까지 반복문을 돌면서 각 요소가 기준값(res)보다 큰지 비교하고, 조건을 만족하는 요소만 출력하면 됩니다.
먼저 기준값을 변수로 선언합니다. 여기서는 res = 80으로 설정했습니다.
int res = 80;
그다음 for 반복문으로 배열 길이(arr.Length)만큼 순회하며 조건을 검사합니다.
for (int i = 0; i < arr.Length; i++) {
if (arr[i] > res) {
Console.WriteLine(arr[i]);
}
}배열의 각 요소가 res(80)보다 클 때만 Console.WriteLine()을 통해 화면에 출력됩니다. 이렇게 하면 55와 45는 조건에 맞지 않아 제외되고, 100과 87만 출력됩니다.
전체 예제 코드
지금까지의 내용을 하나로 합친 완전한 C# 프로그램은 다음과 같습니다.
using System;
namespace Demo {
public class Program {
public static void Main(string[] args) {
int[] arr = new int[] {
55,
100,
87,
45
};
// 기준이 되는 정수
int res = 80;
Console.WriteLine("기준 정수: {0}", res);
Console.WriteLine("{0}보다 큰 숫자:", res);
for (int i = 0; i < arr.Length; i++) {
if (arr[i] > res) {
Console.WriteLine(arr[i]);
}
}
}
}
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
기준 정수: 80 80보다 큰 숫자: 100 87
참고: LINQ를 활용한 더 간결한 방법
C#에서는 LINQ의 Where() 메서드를 사용하면 같은 작업을 훨씬 간결하게 처리할 수도 있습니다.
using System;
using System.Linq;
var result = arr.Where(n => n > 80);
foreach (var n in result) {
Console.WriteLine(n);
}반복문 방식은 로직을 명확히 이해하기 좋고, LINQ 방식은 코드가 짧고 가독성이 높다는 장점이 있습니다. 상황에 맞게 선택해서 사용하시면 됩니다.