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

+ Recent posts