LINQ 라이브러리에서 제공하지 않는 작업에 대한 새 연산자를 추가하거나 표준 쿼리 연산자의 고유한 구현을 만들어 가독성 및 성능을 향상시켜 Rx를 확장할 수 있습니다. 사용자 지정된 버전의 표준 LINQ 연산자를 작성하는 것은 메모리 내 개체로 작업하려는 경우와 의도한 사용자 지정에 쿼리의 포괄적인 보기가 필요하지 않은 경우에 유용합니다.
새 연산자 만들기
LINQ는 엔터티 집합에서 가능한 대부분의 작업을 포함하는 전체 연산자 집합을 제공합니다. 그러나 특히 코드에서 동일한 연산자를 여러 번 다시 사용할 수 있는 경우 특정 의미 체계 의미를 쿼리에 추가하려면 연산자가 필요할 수 있습니다.
많은 기존 LINQ 연산자는 실제로 다른 기본 LINQ 연산자를 사용하여 빌드됩니다. 예를 들어 SelectMany 연산자는 다음 코드와 같이 Select 및 Merge 연산자를 작성하여 빌드됩니다.
public static IObservable<TResult> SelectMany<TSource, TResult>( this IObservable<TSource> source, Func<TSource, IObservable<TResult>> selector)
{
return source.Select(selector).Merge();
}
In t
새 LINQ 연산자를 빌드할 때 기존 LINQ 연산자를 다시 사용하면 Rx 라이브러리에 구현된 기존 성능 또는 예외 처리 기능을 활용할 수 있습니다.
사용자 지정 연산자를 작성할 때는 삭제 가능 개체를 사용하지 않는 것이 좋습니다. 그렇지 않으면 리소스가 실제로 유출될 수 있고 취소가 제대로 작동하지 않을 수 있습니다.
기존 연산자 사용자 지정
LINQ에 새 연산자를 추가하는 것은 기능을 확장하는 방법입니다. 그러나 기존 연산자를 보다 전문적이고 의미 있는 연산자로 래핑하여 코드 가독성을 향상시킬 수도 있습니다.