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