在用户类型列表中查找常用项

时间:2018-05-18 18:34:07

标签: c# linq usertype

我有一个studyTimeList,其中包含ScheduleStudyTime列表 - 我的用户类型。我试图在列表中找到一个共同的ScheduleStudyTime。这是我的代码:

{'id': 5} as ICustomer

如果commonStudyTime返回零,我该怎么做呢,即使有匹配

1 个答案:

答案 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())