Метод Intersect
будет использовать компаратор по умолчанию, который в основном проверяет (для ссылочных типов), совпадают ли ссылки.Поскольку в вашем списке есть object
типы, и они являются различными объектами, он возвращает 0 результатов.
Чтобы сделать то, что вы хотите, вы должны указать методу Intersect
, как выполнить проверку сравнения.Таким образом, вам нужно что-то вроде:
public class ScheduleStudyTimeComparer : IEqualityComparer<ScheduleStudyTime>
{
public bool Equals(ScheduleStudyTime x, ScheduleStudyTime y)
{
// TODO: Check for nulls and possibly make the decision using
// other properties as well
return x.STUDTIME_ID == y.STUDTIME_ID ;
}
public int GetHashCode(ScheduleStudyTime obj)
{
return obj.ScheduleStudyTime.GetHashCode();
}
}
Теперь скажите Intersect
метод, чтобы использовать это:
xs.Intersect(ys, new ScheduleStudyTimeComparer())