Choose
É gerada uma nova coleção aplicando a função chooser
em cada um dos elementos. Os elementos cuja função chooser
retorne um valor opcional o estado IsNone
são filtrados.
Esta função atua de forma semelhante à um Map
e Filter
em conjunto.
Parâmetros | Retorno |
---|---|
Func<T, Option<TResult>> chooser IEnumerable<T> source |
IEnumerable<TResult> |
Como usar
Escolhendo valores pares em uma coleção com uma função nomeada
//IEnumerable<int> source = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
Option<string> NumberToStringWhenEven(int value)
{
if(value % 2 == 0)
return value.ToString();
else
return Option<string>.None();
}
IEnumerable<int> result = source.Choose(NumberToStringWhenEven);
//result = { "2", "4", "6", "8", "10" }
Escolhendo o quadrado dos valores ímpares em uma coleção através de uma função anônima
//IEnumerable<int> source = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
IEnumerable<int> result =
source.Choose(value =>
{
if(value % 2 == 1)
return value * value;
else
return Option<int>.None();
});
//result = { 1, 9, 25, 49, 81 }