在第三方类上实现自定义哈希码

问题描述 投票:0回答:1

我正在第三方使用VisualStudio C#项目中的Line类(无法访问源代码)我的代码正在生成包含重复项的成百上千的行对象,我需要将它们存储在某种集合中(List,HashSet)以进行进一步处理(在屏幕上绘制)。Line类具有Point类型的StartPoint和EndPoint属性。出于我需要做的目的,线的方向无关紧要,并且如果起点和终点相同,则两个Line对象也相同。但是,我使用的类的行为有所不同,即使两个Line对象的起点/终点相同,它们也被认为是唯一的。 (GetHashCode返回不同​​的值)问题是-如何为第三方类实现自定义IComparer或GetHashCode例程,以便能够使用HashSet结构或List.Distinct()功能?

c# unique distinct hashcode gethashcode
1个回答
0
投票
将重载与IEqualityComparer一起使用(您将必须实现)。>

请参阅this以获取HashSet

我想,您的意思是Enumerable.Distinct。使用this

© www.soinside.com 2019 - 2024. All rights reserved.