我正在使用LINQ并使用多个对象进行分组。其中一个对象是HashSet。
var group = map.GroupBy(m => new{m.Item2.Clients,m.Item3,m.Item2.StartTimeID});
m.Item2.ClientCampaigns
的类型为HashSet,
m.Item3
是一个单独的类,用于GetHashCode和Equals方法的方法
m.Item2.StartTimeId
的类型为INT
现在我需要在这三个上做一个GROUP BY,传递一个自定义IEquality Comparer我猜?
如果它只是HasSet,我可以使用HashSet<ClientCampaign>.CreateSetComparer()
作为GroupBy方法中的第二个参数。
在这种情况下,我应该使用什么?
答案 0 :(得分:0)
我解决了!
我创建了一个包含所有参数的新类,我正在分组。
我创建了一个从IEqualityComparer扩展的新自定义Comparer。
此自定义比较器必须分别具有public bool Equals
和public int GetHashCode
方法。
然后,我在代码中的GroupBy子句中使用了此Comparer。