zoukankan      html  css  js  c++  java
  • 工具-使用distinct方法去重对象List

    有个对象ApplicationUser,结构如下:

    public class ApplicationUser
    {
      public Guid SubjectId { get; set; }
      public string Username { get; set; }
    }
    

      现在代码里面有个List<ApplicationUser> users,需要对它进行去重,去重的原理是只要subjectId相同,就认为是相同的一个对象

    使用IEqualityComparer<T>实现一个比较器:

    public class ApplicationUserComparer : IEqualityComparer<ApplicationUser>
        {
            public bool Equals(ApplicationUser x, ApplicationUser y)
            {
                if (x == null || y == null)
                    return false;
                if (x.SubjectId == y.SubjectId)
                    return true;
                else
                    return false;
            }
    
            public int GetHashCode(ApplicationUser obj)
            {
                if (obj == null)
                    return 0;
                else
                    return obj.SubjectId.GetHashCode();
            }
        }
    

      然后使用users.Distinct(new ApplicationUserComparer());调用即可

    ps:从网上看这种方式的性能比较高,如果考虑性能影响可以使用这种方法;如果数据量比较少,不考虑性能方面,直接foreach去去重即可

  • 相关阅读:
    tomcat目录简介
    静态链接库、动态链接库
    查看软、硬raid信息的方法
    linu流量监控
    EXT格式误删除恢复
    linux下securetty文件
    linux下快速删除大量文件
    linux路由配置负载均衡
    python代码 构建验证码
    分布式系统架构
  • 原文地址:https://www.cnblogs.com/walt/p/14837699.html
Copyright © 2011-2022 走看看