Filter
Retorna o valor opcional com o estado IsSome
quando o valor encapsulado está no estado IsSome
e se a função predicate
retornar true
ao ser aplicada ao valor, caso contrário retorna valor opcional com o estado IsNone
.
Parâmetros | Retorno |
---|---|
Func<T, bool> predicate Option<T> option |
Option<T> |
Como usar
Caso o valor opcional esteja no estado IsNone
ele simplesmente será retornado novamente.
Caso o valor opcional esteja no estado IsSome
a função predicate
é aplicada sobre o valor encapsulado e caso a predicate
retornar true
o valor opcional é retornado novamente, caso contrário é retornado um valor opcional no estado IsNone
.
Quando o valor opcional está no estado IsSome e a função retorna true
Option<int> optionValue = 4;
Option<int> result = optionValue.Filter(value => value % 2 == 0);
//result.IsSome = true
//result.Some = 4
Quando o valor opcional está no estado IsSome e a função retorna false
Option<int> optionValue = 3;
Option<int> result = optionValue.Filter(value => value % 2 == 0);
//result.IsSome = false
//result.IsNone = true
Quando o valor opcional está no estado IsNone
Option<int> optionValue = Option<int>.None();
Option<int> result = optionValue.Filter(value => value % 2 == 0);
//result.IsSome = false
//result.IsNone = true