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