FlattenExtensionFlatten Method (IEnumerable, FuncIEnumerable, Boolean) | 
 
            Flattens a sequence containing arbitrarily-nested sequences. An
            additional parameter specifies a predicate function used to
            determine whether a nested 
IEnumerable should be
            flattened or not.
            
 
    Namespace: 
   MoreLinq.Extensions
    Assembly:
   MoreLinq (in MoreLinq.dll) Version: 3.2.0+5205ea241d72b079436060d330cd5c2eae7cdcdf
Syntaxpublic static IEnumerable<Object> Flatten(
	this IEnumerable source,
	Func<IEnumerable, bool> predicate
)
<ExtensionAttribute>
Public Shared Function Flatten ( 
	source As IEnumerable,
	predicate As Func(Of IEnumerable, Boolean)
) As IEnumerable(Of Object)
public:
[ExtensionAttribute]
static IEnumerable<Object^>^ Flatten(
	IEnumerable^ source, 
	Func<IEnumerable^, bool>^ predicate
)
[<ExtensionAttribute>]
static member Flatten : 
        source : IEnumerable * 
        predicate : Func<IEnumerable, bool> -> IEnumerable<Object> 
Parameters
- source
 - Type: System.CollectionsIEnumerable
The sequence that will be flattened. - predicate
 - Type: SystemFuncIEnumerable, Boolean
            A function that receives each element that implements
            IEnumerable and indicates if its elements should be
            recursively flattened into the resulting sequence.
             
Return Value
Type: 
IEnumerableObject
            A sequence that contains the elements of 
source
            and all nested sequences for which the predicate function
            returned 
true.
            
Usage Note
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).
Exceptions
See Also