Ejemplo n.º 1
0
 public static Option <TSource> Where <TSource>(this Option <TSource> source, Func <TSource, bool> predicate)
 {
     if (predicate == null)
     {
         throw new ArgumentNullException("predicate");
     }
     return(SelectMany(source, x => predicate(x) ? Option.GetSome(x) : Option.GetNone <TSource>(), (x, y) => y));
 }
Ejemplo n.º 2
0
        public static Option <T> AsOption <T>(this T value)
        {
            if (ReferenceEquals(null, value))
            {
                return(Option.GetNone <T>());
            }

            return(Option.GetSome(value));
        }
Ejemplo n.º 3
0
 public Option <TResult> Bind <TResult>(Func <T, Option <TResult> > func)
 {
     if (func == null)
     {
         throw new ArgumentNullException("func");
     }
     if (IsNone)
     {
         return(Option.GetNone <TResult>());
     }
     return(func(_value));
 }
Ejemplo n.º 4
0
 public Option <TResult> Transform <TResult>(Func <T, TResult> func)
 {
     if (func == null)
     {
         throw new ArgumentNullException("func");
     }
     if (_isSome)
     {
         return(Option.GetSome(func(_value)));
     }
     else
     {
         return(Option.GetNone <TResult>());
     }
 }