MoreEnumerableFlatten(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.

Definition

Namespace: MoreLinq
Assembly: MoreLinq (in MoreLinq.dll) Version: 4.1.0+0e154ef592f33ce0f6f3d534a9eedee273f0ce72
C#
public static IEnumerable<Object> Flatten(
	this IEnumerable source,
	Func<Object, IEnumerable?> selector
)

Parameters

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.

Return Value

IEnumerableObject
A sequence that contains the elements of source and all nested sequences projected via the selector function.

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

ArgumentNullExceptionsource is null.
ArgumentNullExceptionselector is null.

See Also