Choose
Applies the given chooser function to each element of the collection. Returns the collection comprised of the TResult results for each element where the function returns an Option<T>.Some.
This function works like a combination of Map and Filter.
Parameters
Returns
Func<T, Option<TResult>> chooser
IEnumerable<T> source
IEnumerable<TResult>
Usage
Choosing even numbers in a collection by using a named function
//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" }Choosing the square of odd numbers by using an anonymous function
//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 }Last updated
Was this helpful?