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

Last updated