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

Last updated