我有一个包含3个字段的自定义类:
public class Selector
{
public long? SubTypeID {get;set;}
public int TypeID { get; set; }
public DateTime? ActionDate { get; set; }
}
IEnumerable<IGrouping<Selector, Log>> query = src.GroupBy(td => new Selector()
{SubTypeID = td.SubTypeID, ActionDate = td.ActionDate, TypeID = td.ActivityTypeID},
td => td);
当我有两个日志包含ActionDate ='2013年9月9日'和SubTypeID = 3,以及TypeID = 1时,任何想法为什么它可能不会对这两个日志进行分组?我需要实现自定义比较吗?这里究竟缺少什么?
谢谢!
答案 0 :(得分:2)
您必须覆盖Equals
课程中的GetHashCode
和Selector
方法。否则,正在执行标准参考比较,这就是您的项目未组合在一起的原因。
您还应该阅读Why is it important to override GetHashCode when Equals method is overridden?