Languague/C# / / 2025. 3. 30. 18:27

[C#] 람다식(Lambda Expression)이란? (익명 함수, 델리게이트, => 사용법)

300x250



LINQ 쓸 때 자주 보이는 =>처음 보면 이게 도대체 뭘까 싶은 경우가 있다.
그냥 조건 넣는 건가 싶다가도, 어떤 때는 변수 같고, 함수 같기도 하고?

그래서 이번에 포스팅은 람다식알아보기!
 


 

📚 목차

  1. 람다식이란?
  2. 람다식 문법 아주 쉽게 보기
  3. 익명 함수? 델리게이트?
  4. 실전 예제: 리스트에서 짝수만 뽑기
  5. 람다식 관련 헷갈리는 표현 정리

 

1. 람다식이란?

람다식(Lambda Expression)
C#에서 함수를 짧고 간단하게 표현할 수 있는 문법이다.

x => x + 1

 

여기서 x는 입력값, x + 1은 출력값(결과)이다. “x를 받아서 x + 1을 리턴해줘!” 라는 의미

🧠 함수 이름 없이 쓰는 함수라고 생각하면 이해가 쉽다. 이걸 익명 함수라고도 부른다.
 


 

2. 람다식 문법

형태 설명
x => x + 1 x를 받아 x + 1 반환
(x, y) => x + y x와 y를 받아 합을 반환
() => Console.WriteLine("Hi") 입력값 없이 실행만 할 때
x => { var r = x * 2; return r; } 여러 줄일 땐 {}로 묶기

 


3. 익명 함수? 델리게이트?

람다식을 이해하려면 함수 이름이 없는 함수, 즉 익명 함수 개념이 필요하다.
 

✅ 익명 함수란?

보통 함수는 이렇게 만든다:

int Add(int x, int y) {
    return x + y;
}

 

이름 없이 이렇게도 쓸 수 있다.

(x, y) => x + y

 
이게 바로 익명 함수.즉, 이름이 없는 함수다.
람다식은 이걸 짧게 쓰는 문법이라고 보면 된다.

✅ 델리게이트란?

C#에선 함수를 변수처럼 전달하려면 델리게이트(delegate)라는 기능을 쓴다.
 
이걸 더 간단하게 쓰기 위해 Func<>, Action<> 같은 형태가 있다.

Func<int, int> → int를 받아 int를 반환
Action<string> → string을 받아 반환 없음
Func<int, int> square = x => x * x;
Console.WriteLine(square(5)); // 출력: 25

 
🔍 정리하자면,
람다식은 델리게이트를 간단하게 쓰는 문법이다


4. 실전 예제: 리스트에서 짝수만 뽑기

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };

var even = numbers.Where(n => n % 2 == 0).ToList();

foreach (var num in even)
{
    Console.WriteLine(num); // 2, 4, 6
}

 

여기서 n => n % 2 == 0 이 부분이 바로 람다식이다. n이 2로 나누어 떨어지면 true → 즉, 짝수만 필터링하는 역할을 한다.


5. 람다식 관련 헷갈리는 표현 정리

🙋 (x, y) => x + y 괄호는 왜 쓰나요?

  • 매개변수가 2개 이상이면 괄호 필수
  • 1개일 땐 생략 가능 (예: x => x * 2)

 

🙋 “명시적 타입 지정”은 뭐예요?

"이 변수는 int야!"라고 타입을 직접 써주는 것이다.

(int x, int y) => x + y

 
보통은 C#이 알아서 타입을 추론해주지만, 헷갈릴 때나 가독성을 높이고 싶을 땐 명시적으로 써주는 것도 좋다.
 

300x250
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유