文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>自定义比较方法IEqualityComparer的运用

自定义比较方法IEqualityComparer的运用

时间:2010-09-04  来源:pxeric

今天在项目中就遇到一个这样的问题,当我把两个集合连接在一起并且想去除重复项时,利用.Distinct()无效,它出现的还是重复项。查了下资料,办法是自定义一个比较方法,如下:

List<Student> list = new List<Student>();
  Student a = new Student
  {
         UserId = 1,
         StudentName = "Eric"

  };
  Student b = new Student
  {
         UserId = 1,
         StudentName = "Eric"

  };

  Student c = new Student
  {
         UserId = 2,
         StudentName = "laoyi"

  };
  list.Add(a);
  list.Add(b);

  list.Add(c);
  var tt = list.Distinct(new StudentComparer());
 

public class Student
{
  public int UserId { get; set; }
  public string StudentName { get; set; }
}
 

自定义的比较类:
public class StudentComparer : IEqualityComparer<Student>
{
  public bool Equals(Student x, Student y)
  {
         return x.UserId.Equals(y.UserId);
  }

  public int GetHashCode(Student obj)
  {
         return obj.UserId.GetHashCode();
  }
}

 

上述实例是排除ID相等的。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载