using System.Collections.Generic;
namespace ConsoleApplication1
public int Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
internal class ResidentNameComparer : IEqualityComparer<Resident>
public bool Equals(Resident x, Resident y)
if (string.Equals(x.Name, y.Name, StringComparison.OrdinalIgnoreCase))
public int GetHashCode(Resident obj)
return obj.Name.GetHashCode();
public static void Main(string[] args)
List<Resident> delhiResidents = new List<Resident>();
delhiResidents.Add(new Resident { Id = 1, Name = "Ramesh", City = "Delhi" });
delhiResidents.Add(new Resident { Id = 2, Name = "Kapil", City = "Delhi" });
delhiResidents.Add(new Resident { Id = 3, Name = "Vikas", City = "Delhi" });
delhiResidents.Add(new Resident { Id = 4, Name = "Amit", City = "Delhi" });
List<Resident> kolkataResidents = new List<Resident>();
kolkataResidents.Add(new Resident { Id = 5, Name = "Kapil", City = "Kolkata" });
kolkataResidents.Add(new Resident { Id = 6, Name = "Manmohan", City = "Kolkata" });
kolkataResidents.Add(new Resident { Id = 7, Name = "Deepak", City = "Kolkata" });
kolkataResidents.Add(new Resident { Id = 8, Name = "Amit", City = "Kolkata" });
var onlyDelhiResidents = delhiResidents.Except(kolkataResidents, new ResidentNameComparer());
Console.WriteLine("Only Delhi Residents:");
foreach (var item in onlyDelhiResidents)
Console.WriteLine(item.Name);