728x90
📘 개념 요약
람다식은 C#에서 익명 메서드를 간단하게 표현하는 방식입니다. 특히 LINQ, delegate, 이벤트, 비동기 콜백 등에서 많이 사용되며, 코드를 간결하게 만들어줍니다.
🧠 용어 설명
| 용어 | 의미 |
| 람다식 | 입력 => 결과 형태의 간결한 함수 표현 |
| 익명 함수 | 이름이 없는 함수, 한 번만 쓰일 때 사용 |
| Predicate<T> | bool을 반환하는 델리게이트 |
| Func<T, TResult> | 입력/출력 타입이 있는 일반 함수 형식 |
| Action<T> | 반환값 없이 동작만 수행하는 함수 형식 |
💻 기본 형식
입력 => 식 or 블록
x => x > 10 // 하나의 입력, 조건 필터링
(x, y) => x + y // 두 개의 입력, 계산 결과 반환
() => Console.WriteLine("Hello") // 입력 없음
💡 LINQ에서의 예제
var numbers = new List<int> { 1, 2, 3, 4, 5 };
// 짝수만 필터링
var evens = numbers.Where(n => n % 2 == 0);
foreach (var n in evens)
Console.WriteLine(n); // 출력: 2, 4
n => n % 2 == 0 은 n이라는 입력을 받아서, 짝수인지 검사하여 true/false 반환하는 Predicate<int> 형식입니다.
🔧 다양한 람다식 예시
| 목적 | 코드 | 예제 설명 |
| 필터링 | list.Where(x => x > 10) | 10보다 큰 값만 선택 |
| 매핑 | list.Select(x => x * 2) | 값을 2배로 변환 |
| 정렬 | list.OrderBy(x => x.Name) | 이름 기준 정렬 |
| 조건 검색 | list.Any(x => x == 5) | 값이 포함되어 있는지 |
| 집계 | list.Sum(x => x.Price) | 가격 합산 |
🛑 주의사항
- 블록이 여러 줄일 경우 {} 중괄호와 return 필수:
Func<int, int> square = x =>
{
int result = x * x;
return result;
};
- 람다식 안에서 외부 변수 참조 시 캡처됨 (클로저):
int baseNum = 10;
var result = numbers.Select(n => n + baseNum);
📝 정리
| 항목 | 설명 |
| 람다식 구조 | (매개변수) => 표현식 또는 { 코드블록 } |
| 자주 사용되는 위치 | LINQ, 콜백, 이벤트, 비동기 |
| 대표 함수 형식 | Func<T, TResult>, Predicate<T>, Action<T> |
| 장점 | 코드 간결, 가독성 향상 |
| 주의 | 복잡한 로직은 블록 사용, 클로저 주의 |
🏷 추천 태그
C#, 람다식, LINQ, 익명 함수, Predicate, Func, Action, delegate, 콜백, 클로저
728x90
'개발 언어 & 프레임워크 > C# 프로그래밍 마스터하기' 카테고리의 다른 글
| Nullable Reference Type (C# 8.0 이후) (0) | 2025.05.29 |
|---|---|
| C#의 병렬 처리 완전 분석(Thread, Task, Parallel 성능 및 특징 비교) (4) | 2025.05.29 |
| 인터페이스와 의존성 주입(DI) 구조 설계 (0) | 2025.05.29 |
| LINQ (Language Integrated Query) 활용법 완전 정복 (0) | 2025.05.29 |
| 비동기 프로그래밍 완전 정복: async/await의 모든 것 (0) | 2025.05.29 |