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));
    }
    }

  • 相关阅读:
    Kvm virsh
    lvs tunl
    django表单使用
    django上传图片
    django框架admin使用
    django模板的使用
    django数据库操作
    django数据库交互
    django数据库中
    django之类视图
  • 原文地址:https://www.cnblogs.com/TddCoding/p/2961810.html
Copyright © 2011-2022 走看看