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 Basic | Visual 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)