public static IEnumerable <TResult> SelectWhere <T, TResult>( this IEnumerable <T> me, OutPredicate <T, TResult> predicate) { foreach (var item in me) { if (predicate(item, out var result)) { yield return(result); } } }
public static T Get <T>(string askingMessage, string errorMessage, OutPredicate <string, T> predicate) { Console.WriteLine(askingMessage); T value; while (predicate(Console.ReadLine(), out value)) { Console.Clear(); Console.WriteLine(errorMessage); } return(value); }