c# 根据指定字段去重

public static class DistinctEx
{
    /// <summary>
    /// 根据指定字段去重
    /// </summary>
    /// <typeparam name="TSource"></typeparam>
    /// <typeparam name="TKey"></typeparam>
    /// <param name="source"></param>
    /// <param name="keySelector"></param>
    /// <returns></returns>
    public static IEnumerable<TSource> Distinct<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
    {
        HashSet<TKey> seenKeys = new HashSet<TKey>();
        foreach (TSource element in source)
        {
            var elementValue = keySelector(element);
            if (seenKeys.Add(elementValue))
            {
                yield return element;
            }
        }
    }
}
posted @ 2025-11-04 14:27  Hey,Coder!  阅读(3)  评论(0)    收藏  举报