SelectMany<TMember>(Func<TDeclaration, IEnumerable<TMember>>)
Projects each declaration of the current set to an IEnumerable<T> (typically a list of child declarations) and flattens the resulting sequences into one set.
Declaration
IAspectReceiver<TMember, out TTag> SelectMany<TMember>(Func<out TDeclaration, IEnumerable<TMember>> selector) where TMember : class, IDeclaration
Parameters
Type | Name | Description |
---|---|---|
Func<TDeclaration, IEnumerable<TMember>> | selector |
Returns
Type | Description |
---|---|
IAspectReceiver<TMember, TTag> |
Type Parameters
Name | Description |
---|---|
TMember |
Remarks
The query on the right part of SelectMany
is executed concurrently. It is therefore preferable to use the Where
, Select
or SelectMany
methods of the current interface instead of using the equivalent system methods inside the selector
query.
SelectMany<TMember>(Func<TDeclaration, TTag, IEnumerable<TMember>>)
Projects each declaration of the current set to an IEnumerable<T> (typically a list of child declarations) and flattens the resulting sequences into one set.
This overload does supplies the tag to the selector
delegate.
Declaration
IAspectReceiver<TMember, out TTag> SelectMany<TMember>(Func<out TDeclaration, out TTag, IEnumerable<TMember>> selector) where TMember : class, IDeclaration
Parameters
Type | Name | Description |
---|---|---|
Func<TDeclaration, TTag, IEnumerable<TMember>> | selector |
Returns
Type | Description |
---|---|
IAspectReceiver<TMember, TTag> |
Type Parameters
Name | Description |
---|---|
TMember |
Remarks
The query on the right part of SelectMany
is executed concurrently. It is therefore preferable to use the Where
, Select
or SelectMany
methods of the current interface instead of using the equivalent system methods inside the selector
query.