我有一个studyTimeList,其中包含ScheduleStudyTime列表 - 我的用户类型。我试图在列表中找到一个共同的ScheduleStudyTime。这是我的代码:
{'id': 5} as ICustomer
如果commonStudyTime返回零,我该怎么做呢,即使有匹配
答案 0 :(得分:0)
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())