Composite by Vitaly Kamiansky, Vladimir Ilin

<PackageReference Include="Composite" Version="1.5.5" />

 AccumulateTransformRule<TSource, TResult>

public class AccumulateTransformRule<TSource, TResult>
Represents a set of functions used to find objects, accumulate them in an array, and then transform the accumulated objects into an output enumerable.
public Func<TSource, bool>[] FindPredicates { get; }

public Func<TSource[], IEnumerable<TResult>> TransformFunction { get; }

public AccumulateTransformRule(Func<TSource, bool>[] findPredicates, Func<TSource[], IEnumerable<TResult>> transformFunction)

Creates a new AccumulateTransformRule.