【发布时间】:2014-06-16 03:24:48
【问题描述】:
我正在使用 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 类型
现在我需要通过传入自定义 IEquality 比较器对这三个进行 GROUP BY 我猜?
如果只是 HasSet,我可以使用 HashSet<ClientCampaign>.CreateSetComparer() 作为 GroupBy 方法中的第二个参数。
在这种情况下,我应该使用什么?
【问题讨论】:
-
如果您可以让多个实例的成员 Item2 指向完全相同的 ClientCampaigns 实例,那么这将按照您的方式工作。您可能需要对第 3 项成员执行相同操作。如果对象引用了完全相同的实例,则它们将被视为“相等”。
标签: c# linq group-by hashset iequalitycomparer