
LINQ 쓸 때 자주 보이는 =>
처음 보면 이게 도대체 뭘까 싶은 경우가 있다.
그냥 조건 넣는 건가 싶다가도, 어떤 때는 변수 같고, 함수 같기도 하고?
그래서 이번에 포스팅은 람다식알아보기!
📚 목차
- 람다식이란?
- 람다식 문법 아주 쉽게 보기
- 익명 함수? 델리게이트?
- 실전 예제: 리스트에서 짝수만 뽑기
- 람다식 관련 헷갈리는 표현 정리
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#이 알아서 타입을 추론해주지만, 헷갈릴 때나 가독성을 높이고 싶을 땐 명시적으로 써주는 것도 좋다.
'Languague > C#' 카테고리의 다른 글
[C#] LINQ Select vs SelectMany 완전 정리 (차이점, 예제) (0) | 2025.04.01 |
---|---|
[C# LINQ] Where 사용법 완전 정리 - 조건 필터링, 리스트 추출, 예제까지 (0) | 2025.03.31 |
[C#] Any(), All(), Exists() 사용법 요소 null 체크 (2) | 2024.03.14 |
[C#] LINQ First, FirstOfDefault 사용법 첫번째 요소 가져오기 (1) | 2024.03.12 |
[C#/ JSON] JSON 데이터 다루기 JSON 파싱 (직렬화(Serialization),역직렬화(Deserialization)) (0) | 2024.03.11 |