GroupByManyToMany<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, IEnumerable<TKey>>, Func<TSource, IEnumerable<TElement>>, IEqualityComparer<TKey>) Method
Groups the elements of a sequence according to a specified key selector function that returns a sequence of keys. The keys are compared by using a comparer and each group's elements are projected by using a specified function that returns a sequence of elements.
Namespace
Statiq.Common
Containing Type
GroupByExtensions

Syntax

public static IEnumerable<IGrouping<TKey, TElement>> GroupByManyToMany<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, IEnumerable<TKey>> keySelector, Func<TSource, IEnumerable<TElement>> elementSelector, IEqualityComparer<TKey> comparer)

Type Parameters

Name Description
TSource The type of the source.
TKey The type of the key.
TElement The type of the element.

Parameters

Name Type Description
source IEnumerable<TSource> The source.
keySelector Func<TSource, IEnumerable<TKey>> The key selector.
elementSelector Func<TSource, IEnumerable<TElement>> The element selector.
comparer IEqualityComparer<TKey> The comparer.

Return Value

Type Description
IEnumerable<IGrouping<TKey, TElement>> A sequence of groups.