[c#] C# 이터레이터와 데이터 필터링

C#에서 이터레이터(iterator)는 컬렉션, 배열 또는 사용자가 정의한 데이터 소스에서 데이터를 반복적으로 얻을 수 있는 블록을 만들 수 있는 기능입니다. 데이터 필터링은 이러한 이터레이터를 사용하여 원하는 데이터만을 선택할 수 있는 유용한 패턴입니다.

이터레이터를 사용하여 데이터 필터링

일반적으로 yield 키워드와 함께 사용되는 이터레이터 함수는 데이터 소스에서 값을 가져오고 필터링하는 데 사용됩니다. 아래는 C#에서 이터레이터 함수를 사용하여 데이터를 필터링하는 간단한 예제입니다.

public IEnumerable<int> FilterNumbers(IEnumerable<int> numbers, Func<int, bool> filter)
{
    foreach (int number in numbers)
    {
        if (filter(number))
        {
            yield return number;
        }
    }
}

위의 예제에서 Func<int, bool> 델리게이트를 사용하여 필터 기준을 정의합니다. FilterNumbers 함수는 numbers 컬렉션에서 필터 함수에 따라 값을 선택하여 새로운 컬렉션을 반환합니다.

예제

다음은 FilterNumbers 함수를 사용하여 짝수만을 필터링하는 간단한 예제입니다.

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var evenNumbers = FilterNumbers(numbers, x => x % 2 == 0);

foreach (int number in evenNumbers)
{
    Console.WriteLine(number);
}

위의 예제는 numbers 리스트에서 짝수만을 필터링하여 evenNumbers에 저장하고 각각의 값을 출력합니다.

결론

C#의 이터레이터는 데이터 필터링을 위한 강력한 도구로 활용될 수 있습니다. 이터레이터를 사용하여 데이터를 필터링 및 가공함으로써 코드의 가독성과 성능을 향상시킬 수 있습니다.

이는 데이터 관리 및 처리에 있어서 중요한 패턴 중 하나이며, C#에서는 이를 구현하기 위한 강력한 기능들을 제공하고 있습니다.

참고문헌: