C#은 확장 메서드(extension method)와 Language Integrated Query (LINQ)를 사용하여 코드를 더 간결하고 읽기 쉽도록 만들어줍니다. 이러한 기능들은 특히 컬렉션을 다룰 때 유용하며, 코드의 가독성을 향상시키고 개발 생산성을 높이는 데 큰 도움이 됩니다.
확장 메서드 (Extension Methods)
확장 메서드는 C# 3.0부터 도입된 기능으로, 기존 클래스의 기능을 확장할 수 있도록 해줍니다. 이를 통해 필요한 메서드를 따로 정의하지 않고 기존 클래스의 인스턴스에 새로운 메서드를 추가할 수 있습니다.
아래는 List<T>
를 확장하여 리스트에서 짝수만을 필터링하는 확장 메서드를 정의하는 예제입니다.
public static class ListExtensions
{
public static IEnumerable<int> FilterEvenNumbers(this List<int> list)
{
foreach (var item in list)
{
if (item % 2 == 0)
yield return item;
}
}
}
위의 예제에서 ListExtensions
클래스는 List<T>
에 새로운 메서드인 FilterEvenNumbers
를 추가하고 있습니다. 이제 이 메서드는 List<int>
인스턴스에서 직접 호출할 수 있게 됩니다.
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var evenNumbers = numbers.FilterEvenNumbers();
위의 코드에서 FilterEvenNumbers
메서드를 호출하여 리스트에서 짝수를 필터링하고 있습니다.
Language Integrated Query (LINQ)
LINQ는 C# 3.5부터 지원되는 언어 집약 질의(Language Integrated Query)이며, 컬렉션 데이터를 처리하는 데 사용됩니다. LINQ를 이용하면 컬렉션의 데이터를 간결한 구문으로 처리할 수 있고, 데이터베이스 쿼리처럼 질의할 수 있습니다.
아래는 LINQ를 사용하여 리스트에서 짝수만을 필터링하는 예제입니다.
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var evenNumbers = from number in numbers
where number % 2 == 0
select number;
위의 코드는 numbers
리스트에서 LINQ 구문을 사용하여 짝수를 필터링하고 있습니다.
결론
확장 메서드와 LINQ는 C#에서 코드를 간결하게 만들어주는 매우 유용한 기능입니다. 확장 메서드는 기존 클래스의 기능을 확장하고, LINQ는 컬렉션을 질의하고 조작하는 데 사용됩니다. 이러한 기능들을 잘 활용하여 읽기 쉬운 코드를 작성하고 생산성을 향상시키는 것이 중요합니다.
자세한 내용은 Microsoft 공식 문서를 참고하실 수 있습니다.