C#의 람다 식(lambda expression)은 익명 함수를 간결하게 표현하는 패턴으로, 대리자(delegate)나 식 트리(expression tree)에 할당할 수 있는 코드를 정의할 때 사용됩니다. 람다 식은 식(expression) 컨텍스트에서 => 토큰을 사용하며, 이 기호는 "goes to(~로 이동한다)" 연산자라고 읽고 람다 식을 선언할 때 활용됩니다.
람다 식의 기본 구조
람다 식은 일반적으로 다음과 같은 형태를 가집니다.
(입력 매개변수) => 식 또는 문 블록
예를 들어 x => x % 2 == 0은 "x가 주어지면(go), x를 2로 나눈 나머지가 0인지 판별하라"는 의미입니다. 즉, 입력값 x가 짝수인지 확인하는 조건식입니다.
예제
다음 예제는 C#에서 람다 식을 사용하여 리스트에서 첫 번째 짝수의 인덱스를 찾는 방법을 보여줍니다.
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
List<int> list = new List<int>() { 21, 17, 40, 11, 9 };
int res = list.FindIndex(x => x % 2 == 0);
Console.WriteLine("Index: " + res);
}
}
실행 결과
Index: 2
코드 설명
위 코드에서는 "goes to" 연산자(=>)를 활용하여 리스트 안에서 짝수의 위치를 찾았습니다.
list.FindIndex(x => x % 2 == 0);
FindIndex 메서드는 지정된 조건자(predicate)를 만족하는 첫 번째 요소의 인덱스를 반환합니다. 여기서 람다 식 x => x % 2 == 0이 조건자 역할을 하며, 리스트의 각 요소 x가 짝수인지 순서대로 검사합니다.
실행 결과는 다음과 같습니다.
Index: 2
짝수 40은 인덱스 2에 위치하며, 이는 리스트에서 세 번째 요소라는 뜻입니다. 이처럼 람다 식을 사용하면 별도의 메서드를 정의하지 않고도 조건 로직을 한 줄로 간결하게 작성할 수 있습니다.