MoreEnumerableChooseT, TResult Method
            Applies a function to each element of the source sequence and
            returns a new sequence of result elements for source elements
            where the function returns a couple (2-tuple) having a true
            as its first element and result as the second.
            
Namespace: MoreLinqAssembly: MoreLinq (in MoreLinq.dll) Version: 4.4.0+6d97c3b1d482f98300f4446df14742b0e3fafbec
public static IEnumerable<TResult> Choose<T, TResult>(
	this IEnumerable<T> source,
	Func<T, (bool , TResult )> chooser
)
<ExtensionAttribute>
Public Shared Function Choose(Of T, TResult) ( 
	source As IEnumerable(Of T),
	chooser As Func(Of T, ( As Boolean,  As TResult))
) As IEnumerable(Of TResult)
public:
[ExtensionAttribute]
generic<typename T, typename TResult>
static IEnumerable<TResult>^ Choose(
	IEnumerable<T>^ source, 
	Func<T, ValueTuple<bool, TResult>>^ chooser
)
[<ExtensionAttribute>]
static member Choose : 
        source : IEnumerable<'T> * 
        chooser : Func<'T, ValueTuple<bool, 'TResult>> -> IEnumerable<'TResult> 
- source  IEnumerableT
-  The source sequence.
- chooser  FuncT, ValueTupleBoolean, TResult
- The function that is applied to each source
            element.
- T
- 
            The type of the elements in source.
- TResult
- 
            The type of the elements in the returned sequence.
IEnumerableTResultA sequence 
TResult elements.In Visual Basic and C#, you can call this method as an instance method on any object of type 
IEnumerableT. When you use instance method syntax to call this method, omit the first parameter. For more information, see 
Extension Methods (Visual Basic) or 
Extension Methods (C# Programming Guide).
 
            This method uses deferred execution semantics and streams its
            results.
            
var str = "O,l,2,3,4,S,6,7,B,9";
var xs = str.Split(',').Choose(s => (int.TryParse(s, out var n), n));
            The 
xs variable will be a sequence of the integers 2, 3, 4,
            6, 7 and 9.