var list = new List<Pet>()
{
new Cat() {Name = "Kitty", Id = 1},
new Cat() {Name = "Kitty", Id = 1},
new Cat() {Name = "Kitty", Id = 1}
};
var distinctCount = list.Where(i => i.Id == 1).Distinct().Count();
получается, что distinctCount равно 3. Почему? Кажется, что по умолчанию Distinct различает экземпляры (хотя все свойства имеют одинаковые значения, они три экземпляра).