using System.Collections.Generic;
var List1 = new List<Employee>{new Employee{EmployeeId = "A9", Firstname = "George", Lastname = "Lucas", Employmentstatus = "Active"}, new Employee{EmployeeId = "A2", Firstname = "Sam", Lastname = "Tri", Employmentstatus = "Active"}, new Employee{EmployeeId = "A3", Firstname = "Alex", Lastname = "Smith", Employmentstatus = "Active"}, new Employee{EmployeeId = "A4", Firstname = "Walter", Lastname = "Anderson", Employmentstatus = "Active"}, new Employee{EmployeeId = "A5", Firstname = "Monte", Lastname = "Lexington", Employmentstatus = "Active"}, new Employee{EmployeeId = "A6", Firstname = "Frank", Lastname = "Smith", Employmentstatus = "Suspended"}, };
var List2 = new List<Employee>{new Employee{EmployeeId = "A1", Firstname = "George", Lastname = "Lucas", Employmentstatus = "Active"}, new Employee{EmployeeId = "A2", Firstname = "Sam", Lastname = "Tri", Employmentstatus = "Terminated"}, new Employee{EmployeeId = "A3", Firstname = "Alex", Lastname = "Smith", Employmentstatus = "Active"}, new Employee{EmployeeId = "A4", Firstname = "Sam", Lastname = "Anderson", Employmentstatus = "Active"}, new Employee{EmployeeId = "A5", Firstname = "Monte", Lastname = "Lexington", Employmentstatus = "Active"}, new Employee{EmployeeId = "A6", Firstname = "Frank", Lastname = "Smith", Employmentstatus = "Retired"}, new Employee{EmployeeId = "A7", Firstname = "Lex", Lastname = "Fama", Employmentstatus = "New"}, };
var results = List2.Except(List1, new EmployeeComparer()).ToList();
public string Employmentstatus
public class EmployeeComparer : IEqualityComparer<Employee>
public int GetHashCode(Employee co)
return co.Employmentstatus.GetHashCode();
public bool Equals(Employee x1, Employee x2)
if (object.ReferenceEquals(x1, x2))
if (object.ReferenceEquals(x1, null) || object.ReferenceEquals(x2, null))
return x1.Employmentstatus == x2.Employmentstatus && x1.Firstname == x2.Firstname && x1.Lastname == x2.Lastname;