The FilterTransformation is a simple transformation that filter out rows which do not match with a given Predicate. (A predicate is a function that either returns true or false - if the result is true, the row is kept, otherwise the row is discarded.
Note
The filter transformation is not the only option to filter values in a data flow. You can use predicates expression when linking components in a data flow as well. See below for more details.
The FilterTransformation is a non blocking transformation, so it will only store the current row in memory (plus some additional rows in the input buffer to improve throughput). It has one input buffer.
Instead of using a FilterTransformation, the same output can be produced by using predicates when linking objects. The below code would do the same thing:
The VoidDestination is a destination that can be used to discard records that you want to ignore. This code can be even simplified more:
By providing a second and third parameter when linking components, you can define which rows you want to keep and which rows you want to discard.
The default implementation of the FilterTransformation also works with an ExpandoObject. The code above could be modified like below to achieve the same result with a dynamic object.