Linq与泛型的Distinct(IEqualityComparer)的用法

针对数组可以用List.Distinct(),可以过滤掉重复的内容。

针对对象中的某个字段只能用Distinct(IEqualityComparer<T>)

用法:

public class AppIndex : BasePage
{
    public void DoGet()
    {
        List<test11> list_test = new List<test11>();
        list_test.Add(new test11()
        {
            m = 1,
            v = "one"
        });
        list_test.Add(new test11()
        {
            m = 2,
            v = "two"
        });
        list_test.Add(new test11()
        {
            m = 3,
            v = "three"
        });
        list_test.Add(new test11()
        {
            m = 4,
            v = "fornt"
        });
        list_test.Add(new test11()
       {
           m = 4,
           v = "fornt"
       });
        list_test.Add(new test11()
      {
          m = 3,
          v = "fornt"
      });
        var ss = list_test.Distinct(new Comparint());//这里调用
        this.Add("mylist", new Travel.DAL.AppActive().GetList(BaseCode));
    }
}

public class test11
{
    public int m { get; set; }
    public string v { get; set; }
}
public class Comparint : IEqualityComparer<test11>
{

    public bool Equals(test11 x, test11 y)
    {
        if (x == null && y == null)
            return false;
        return x.m == y.m;
    }

    public int GetHashCode(test11 obj)
    {
        return obj.ToString().GetHashCode();
    }
}