TryPick
Aplica a função chooser
em cada um dos elementos, a função interrompe assim que um resultado for um opcional no estado IsSome
.
Semelhante ao Pick
, mas retornando o valor ainda sob o contexto opcional e sem levantar nenhuma exceção.
Caso não encontre um valor que satisfaça a função, é retornado um valor Option<T>
no estado IsNone
.
Parâmetros | Retorno |
---|---|
Func<T, Option<T2>> chooser IEnumerable<T> source |
T2 |
Como usar
Obtendo o dobro do primeiro valor ímpar em uma coleção através de uma função anônima
//IEnumerable<int> source = { 2, 2, 4, 4, 6, 6, 7, 8, 9 }
Option<int> result = source.TryPick(value =>
{
if(value % 2 == 1)
return value * 2;
else
return Option<int>.None();
});
//result.IsSome = true
//result.Some = 14
Quando não houver elemento que satisfaça a condição
//IEnumerable<int> source = { 2, 2, 4, 4, 6, 6, 6, 8, 8 }
Option<int> result = source.TryPick(value =>
{
if(value % 2 == 1)
return value * 2;
else
return Option<int>.None();
});
//result.IsSome = false
//result.IsNone = true