I have a list of ObjA and ObjB as follows:
List List1;
List List2;
Both ObjA and ObjB has a common field which is U
without need of IEqualityComparer or IEquatable (which would be better anyway)
var commonUsers = list1
.Select(l1 => l1.User)
.Where(u => list1
.Select(l => l.User.Id)
.Intersect(list2
.Select(l2 => l2.Id))
.Contains(u.Id));
or
var commonUsers = list1.Select(l1 => l1.User)
.Where(u=> list2.Select(l2 => l2.User.Id)
.Contains(u.Id));