public static Func <T, bool> ToFunc <T>(this Predicate <T> predicate) { var target = predicate.Target; if (target is FuncWrapper <T> funcWrapper) { return(funcWrapper.Func); } var wrapper = new PredicateWrapper <T>(predicate); return(wrapper.Invoke); }
public static Func <T, bool> ToFunc <T>(this Predicate <T> predicate) { var target = predicate.Target; var funcWrapper = target as FuncWrapper <T>; if (funcWrapper != null) { return(funcWrapper.Func); } else { var wrapper = new PredicateWrapper <T>(predicate); return(wrapper.Invoke); } }