Exists

Retorna o valor gerado pela função predicateWhenRight ou predicateWhenRight de acordo com o estado do valor either.

Parâmetros

Retorno

Func<TRight, bool> predicateWhenRight

Func<TLeft, bool> predicateWhenLeft

Either<TLeft, TRight> either

bool

Como usar

Caso o valor Either esteja no estado IsLeft, o resultado será o valor gerado pela função predicateWhenLeft, caso contrário será o valor gerado pela função predicateWhenRight.

Quando o valor Either está no estado IsRight e a função retorna true

Either<string, int> either = 20;
bool result = 
    either.Exists(
        right => right == 20,
        left => left == "Hello World");

//result = true

Quando o valor Either está no estado IsLeft e a função retorna true

Either<string, int> either = "Hello World";
bool result = 
    either.Exists(
        right => right == 20,
        left => left == "Hello World");

//result = true

Quando o valor Either está no estado IsRight e a função retorna false

Either<string, int> either = 15;
bool result = either.Exists(
right => right == 20,
left => left == "Hello World");
//result = false

Abordagens para apenas um dos lados

Você pode utilizar os métodos ExistsLeft e ExistsRight para obter o mesmo resultado, mas desta vez aplicando a função somente em um dos valores.

Sempre que estas funções forem aplicados para valores Either que não estão do mesmo tipo que a função de avaliação será retornado false.

ExistsRight Quando o valor Either está no estado IsRight

Either<string, int> either = 20;
bool result = either.ExistsRight(right => right == 20);

//result = true

ExistsLeft Quando o valor Either está no estado IsRight

Either<string, int> either = 20;
bool result = either.ExistsLeft(left => left == "Hello World");

//result = false

Last updated