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
728x90

📘 개념 요약

LINQ는 C# 컬렉션을 SQL처럼 다루는 문법으로, 데이터를 필터링하고 가공하는 강력한 도구입니다. 리스트, 배열, DB, XML, JSON 등 다양한 소스에 적용할 수 있습니다.


🧠 용어 설명

용어 설명
Where() 조건에 맞는 요소 필터링
Select() 변환 및 항목 추출
OrderBy() 정렬
GroupBy() 그룹화
Join() 두 컬렉션 연결 (조인)
 

💻 코드 예제

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

        // 짝수 필터링
        var evens = numbers.Where(n => n % 2 == 0);

        Console.WriteLine("짝수 목록:");
        foreach (var n in evens)
            Console.WriteLine(n);
    }
}

🔧 사용법 정리

  • 람다식 (n => 조건): 간결하게 필터링
  • IEnumerable<T>: LINQ 결과는 지연 평가(lazy evaluation)
  • ToList() 사용 시 즉시 평가

🏷 추천 태그

C#, LINQ, 람다, 데이터 처리, Where, Select, 프로그래밍, 컬렉션 처리, IEnumerable

728x90

+ Recent posts