FlattenExtensionFlatten(IEnumerable, FuncObject, IEnumerable) Method
            Flattens a sequence containing arbitrarily-nested sequences. An
            additional parameter specifies a function that projects an inner
            sequence via a property of an object.
            
Namespace: MoreLinq.ExtensionsAssembly: MoreLinq (in MoreLinq.dll) Version: 4.4.0+6d97c3b1d482f98300f4446df14742b0e3fafbec
public static IEnumerable<Object> Flatten(
	this IEnumerable source,
	Func<Object, IEnumerable?> selector
)
<ExtensionAttribute>
Public Shared Function Flatten ( 
	source As IEnumerable,
	selector As Func(Of Object, IEnumerable)
) As IEnumerable(Of Object)
public:
[ExtensionAttribute]
static IEnumerable<Object^>^ Flatten(
	IEnumerable^ source, 
	Func<Object^, IEnumerable^>^ selector
)
[<ExtensionAttribute>]
static member Flatten : 
        source : IEnumerable * 
        selector : Func<Object, IEnumerable> -> IEnumerable<Object> 
- source  IEnumerable
- The sequence that will be flattened.
- selector  FuncObject, IEnumerable
- 
            A function that receives each element of the sequence as an object
            and projects an inner sequence to be flattened. If the function
            returns null then the object argument is considered a leaf
            of the flattening process.
            
IEnumerableObject
            A sequence that contains the elements of 
source
            and all nested sequences projected via the
            
selector function.
            In Visual Basic and C#, you can call this method as an instance method on any object of type 
IEnumerable. 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).