zoukankan      html  css  js  c++  java
  • Linq Distinct 扩展

    public class CommonEqualityComparer<T, V> : IEqualityComparer<T>
    {
    private Func<T, V> keySelector;
    private IEqualityComparer<V> comparer;
    public CommonEqualityComparer(Func<T, V> keySelector, IEqualityComparer<V> comparer = null)
    {
    this.keySelector = keySelector;
    this.comparer = comparer ?? EqualityComparer<V>.Default;
    }

    public bool Equals(T x, T y)
    {
    return comparer.Equals(keySelector(x), keySelector(y));
    }

    public int GetHashCode(T obj)
    {
    return comparer.GetHashCode(keySelector(obj));
    }
    }

    public static class DistinctExtensions
    {
    public static IEnumerable<T> Distinct<T, V>(this IEnumerable<T> source, Func<T, V> keySelector, IEqualityComparer<V> comparer = null)
    {
    return source.Distinct(new CommonEqualityComparer<T, V>(keySelector, comparer));
    }
    }

  • 相关阅读:
    MySQLSource-Flume
    Flume
    Hive| ETL清洗& 查询练习
    Hive-04 压缩| 存储
    Hive-03 查询
    Hive-02 DDL| DML
    shell基本用法
    Hive-01 配置| 架构原理
    HDFS-HA高可用 | Yarn-HA
    react-路由和Ant design
  • 原文地址:https://www.cnblogs.com/TddCoding/p/2961810.html
Copyright © 2011-2022 走看看