MoreEnumerable.DistinctBy<TSource, TKey> Method (IEnumerable<TSource>, Func<TSource, TKey>) |
Returns all distinct elements of the given source, where "distinctness"
is determined via a projection and the default equality comparer for the projected type.
Namespace:
MoreLinq
Assembly:
MoreLinq (in MoreLinq.dll) Version: 2.10.0
Syntaxpublic static IEnumerable<TSource> DistinctBy<TSource, TKey>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector
)
<ExtensionAttribute>
Public Shared Function DistinctBy(Of TSource, TKey) (
source As IEnumerable(Of TSource),
keySelector As Func(Of TSource, TKey)
) As IEnumerable(Of TSource)
public:
[ExtensionAttribute]
generic<typename TSource, typename TKey>
static IEnumerable<TSource>^ DistinctBy(
IEnumerable<TSource>^ source,
Func<TSource, TKey>^ keySelector
)
[<ExtensionAttribute>]
static member DistinctBy :
source : IEnumerable<'TSource> *
keySelector : Func<'TSource, 'TKey> -> IEnumerable<'TSource>
Parameters
- source
- Type: System.Collections.Generic.IEnumerable<TSource>
Source sequence - keySelector
- Type: System.Func<TSource, TKey>
Projection for determining "distinctness"
Type Parameters
- TSource
- Type of the source sequence
- TKey
- Type of the projected element
Return Value
Type:
IEnumerable<TSource>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<TSource>. 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).
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.
See Also