Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class User
- {
- public int Id { get;set; }
- public string name { get;set; }
- }
- List<User> obsoleteUsers = olduser.Except(newuser).ToList();
- class User : IEquatable<User> {
- public int Id { get; set; }
- public string name { get; set; }
- public bool Equals(User other) {
- if (null == other)
- return false;
- return
- Id == other.Id &&
- string.Equals(name, other.name, StringComparison.OrdinalIgnoreCase);
- }
- public override bool Equals(object obj) => Equals(obj as User);
- public override int GetHashCode() => Id;
- }
- class UserNameComparer : IEqualityComparer<User>
- {
- public UserNameComparer(StringComparer comparer)
- {
- if (Comparer == null) throw new ArgumentNullException(nameof(comparer));
- this.Comparer = comparer;
- }
- public StringComparer Comparer { get; }
- public bool Equals(User x, User y)
- {
- if (x == null || y == null) return true;
- return Comparer.Equals(x.name, y.name);
- }
- public int GetHashCode(User obj)
- {
- return Comparer.GetHashCode(obj?.name);
- }
- }
- List<User> obsoleteUsers = olduser
- .Except(newuser, new UserNameComparer(StringComparer.InvariantCultureIgnoreCase))
- .ToList();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement