Click or drag to resize

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.0.0
Syntax
public static IEnumerable<Object> Flatten(
	this IEnumerable source,
	Func<IEnumerable, bool> predicate
)

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
ExceptionCondition
ArgumentNullExceptionsource is null.
ArgumentNullExceptionpredicate is null.
See Also