26 lines
588 B
C#
26 lines
588 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace New_College
|
|
{
|
|
public static class DistinctByHelper
|
|
{
|
|
|
|
public static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> source, Func<T, TKey> keySelector)
|
|
{
|
|
HashSet<TKey> seenKeys = new HashSet<TKey>();
|
|
foreach (var item in source)
|
|
{
|
|
if (seenKeys.Add(keySelector(item)))
|
|
{
|
|
yield return item;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|