Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. class User
  2. {
  3. public int Id { get;set; }
  4. public string name { get;set; }
  5. }
  6.  
  7. List<User> obsoleteUsers = olduser.Except(newuser).ToList();
  8.  
  9. class User : IEquatable<User> {
  10. public int Id { get; set; }
  11. public string name { get; set; }
  12.  
  13. public bool Equals(User other) {
  14. if (null == other)
  15. return false;
  16.  
  17. return
  18. Id == other.Id &&
  19. string.Equals(name, other.name, StringComparison.OrdinalIgnoreCase);
  20. }
  21.  
  22. public override bool Equals(object obj) => Equals(obj as User);
  23.  
  24. public override int GetHashCode() => Id;
  25. }
  26.  
  27. class UserNameComparer : IEqualityComparer<User>
  28. {
  29. public UserNameComparer(StringComparer comparer)
  30. {
  31. if (Comparer == null) throw new ArgumentNullException(nameof(comparer));
  32. this.Comparer = comparer;
  33. }
  34.  
  35. public StringComparer Comparer { get; }
  36.  
  37. public bool Equals(User x, User y)
  38. {
  39. if (x == null || y == null) return true;
  40. return Comparer.Equals(x.name, y.name);
  41. }
  42.  
  43. public int GetHashCode(User obj)
  44. {
  45. return Comparer.GetHashCode(obj?.name);
  46. }
  47. }
  48.  
  49. List<User> obsoleteUsers = olduser
  50. .Except(newuser, new UserNameComparer(StringComparer.InvariantCultureIgnoreCase))
  51. .ToList();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement