MoreLinq
DistinctBy<(Of <(<'TSource, TKey>)>)> Method (source, keySelector, comparer)
NamespacesMoreLinqMoreEnumerableDistinctBy<(Of <<'(TSource, TKey>)>>)(IEnumerable<(Of <<'(TSource>)>>), Func<(Of <<'(TSource, TKey>)>>), IEqualityComparer<(Of <<'(TKey>)>>))
Returns all distinct elements of the given source, where "distinctness" is determined via a projection and the specified comparer for the projected type.
Declaration Syntax
C#Visual BasicVisual C++
public static IEnumerable<TSource> DistinctBy<TSource, TKey>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector,
	IEqualityComparer<TKey> comparer
)
<ExtensionAttribute> _
Public Shared Function DistinctBy(Of TSource, TKey) ( _
	source As IEnumerable(Of TSource), _
	keySelector As Func(Of TSource, TKey), _
	comparer As IEqualityComparer(Of TKey) _
) As IEnumerable(Of TSource)
public:
[ExtensionAttribute]
generic<typename TSource, typename TKey>
static IEnumerable<TSource>^ DistinctBy(
	IEnumerable<TSource>^ source, 
	Func<TSource, TKey>^ keySelector, 
	IEqualityComparer<TKey>^ comparer
)
Generic Template Parameters
TSource
Type of the source sequence
TKey
Type of the projected element
Parameters
source (IEnumerable<(Of <(<'TSource>)>)>)
Source sequence
keySelector (Func<(Of <(<'TSource, TKey>)>)>)
Projection for determining "distinctness"
comparer (IEqualityComparer<(Of <(<'TKey>)>)>)
The equality comparer to use to determine whether or not keys are equal. If null, the default equality comparer for TSource is used.
Return Value
A sequence consisting of distinct elements from the source sequence, comparing them by the specified key projection.
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type IEnumerable<(Of <(<'TSource>)>)>. When you use instance method syntax to call this method, omit the first parameter.
Remarks
This operator uses deferred execution and streams the results, although a set of already-seen keys is retained. If a key is seen multiple times, only the first element with that key is returned.

Assembly: MoreLinq (Module: MoreLinq.dll) Version: 1.0.16006.0 (1.0.16006.1845)