Find, execute, and create types at runtime by using reflection

You want to create a delegate that can filter a list of strings on a specific value. Which type should you use?

Func<string, IEnumerable<string>, IEnumerable<string>>
Func<IEnumerable<string>, IEnumerable<string>>
Action<bool, IEnumerable<string>>
Func<IEnumerable<string>>