반응형
람다식(Lambda Expression)은 C#에서 매우 강력하고 유용한 기능으로, 함수 또는 메서드를 간결하게 표현하는 데 사용됩니다. 초보자도 쉽게 이해할 수 있도록 천천히 설명하겠습니다.
람다식이란?
람다식은 간단히 말해 **"익명 함수"**입니다. 이름이 없는 함수로, 코드를 더 짧고 간결하게 작성할 수 있도록 도와줍니다.
람다식은 다음과 같은 구조를 가집니다:
(입력 매개변수) => { 실행 코드 }
람다식이 왜 개발되었나?
- 코드 간결성
불필요한 메서드 정의를 줄이고, 간단한 작업을 효율적으로 표현하기 위해 개발되었습니다. - 표현력
데이터를 처리하는 함수형 프로그래밍 스타일을 지원하며, LINQ와 같은 고급 기능에서 매우 유용합니다. - 재사용성 및 가독성
람다식을 사용하면 코드를 간결하고 읽기 쉽게 만들어 복잡한 작업을 쉽게 이해할 수 있습니다.
간단한 예제
기존 방식 (익명 메서드 사용)
using System;
class Program
{
static void Main()
{
Func<int, int> square = delegate (int x) { return x * x; }; // 익명 메서드 사용
Console.WriteLine(square(5)); // 출력: 25
}
}
람다식 사용
using System;
class Program
{
static void Main()
{
Func<int, int> square = x => x * x; // 람다식 사용
Console.WriteLine(square(5)); // 출력: 25
}
}
차이점
익명 메서드보다 훨씬 간결하며, 코드의 가독성이 높아집니다.
어떤 상황에서 사용되나?
- LINQ (Language-Integrated Query)
데이터 쿼리를 작성할 때 자주 사용됩니다.
using System;
using System.Linq;
class Program
{
static void Main()
{
int[] numbers = { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0); // 짝수 필터링
foreach (var num in evenNumbers)
{
Console.WriteLine(num); // 출력: 2, 4
}
}
}
- 콜백 함수 버튼 클릭 이벤트, 비동기 작업 등에서 간단한 동작을 지정할 때 사용됩니다.
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
Task.Run(() => Console.WriteLine("비동기 작업 수행 중..."));
Console.ReadLine();
}
}
- 컬렉션 처리 데이터를 변환하거나 필터링할 때 사용됩니다.
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var squaredNumbers = numbers.Select(x => x * x); // 각 숫자를 제곱
foreach (var num in squaredNumbers)
{
Console.WriteLine(num); // 출력: 1, 4, 9, 16, 25
}
}
}
고급 문법에서의 활용
중첩 람다식
람다식을 중첩해서 사용할 수 있습니다. 주로 복잡한 데이터 처리를 할 때 유용합니다.
using System;
using System.Linq;
class Program
{
static void Main()
{
int[] numbers = { 1, 2, 3, 4, 5 };
var result = numbers.Select(x => new { Original = x, Squared = x * x })
.Where(x => x.Squared > 10);
foreach (var item in result)
{
Console.WriteLine($"원본: {item.Original}, 제곱: {item.Squared}");
// 출력: 원본: 4, 제곱: 16
// 출력: 원본: 5, 제곱: 25
}
}
}
람다식과 Action/Func 델리게이트
람다식은 Action과 Func 델리게이트를 사용하여 간단한 메서드 표현으로 사용됩니다.
using System;
class Program
{
static void Main()
{
Action<string> greet = name => Console.WriteLine($"안녕하세요, {name}님!");
greet("홍길동"); // 출력: 안녕하세요, 홍길동님!
Func<int, int, int> add = (x, y) => x + y;
Console.WriteLine(add(5, 10)); // 출력: 15
}
}
람다식은 처음엔 다소 생소할 수 있지만, 사용해 보면 코드가 얼마나 간결하고 강력해지는지 알 수 있습니다. 작은 부분부터 익혀 나가면 자연스럽게 익숙해질 것입니다!
반응형
'C#' 카테고리의 다른 글
Windows 공유 폴더 동시 연결 제한 해결 방법 (0) | 2025.01.17 |
---|---|
C# `ref`와 `out` 키워드의 차이점과 활용법 (2) | 2025.01.16 |
`TimeSpan.FromSeconds` vs `Thread.Sleep`: 차이와 올바른 사용법 (0) | 2025.01.16 |
ProcessorAffinity로 CPU 코어 활용 제어하기 (28) | 2025.01.14 |
C# LINQ: 데이터 쿼리를 간결하고 강력하게 다루는 방법 (0) | 2025.01.13 |
SocketException: '각 소켓 주소는 하나만 사용할 수 있습니다' 에러 원인 및 해결법 (0) | 2025.01.10 |
C# internal: 어셈블리 내 접근 제한자 (0) | 2025.01.10 |
C# Struct vs Class: 차이점과 최적 사용 사례 (0) | 2025.01.06 |