朋友们,我想创建一个获取两个点列表(我创建的对象)并返回包含以下内容的列表的方法:
第一个和第二个列表中存在的点。
第一个列表中存在的点,但第二个列表中不存在。
第一个中不存在的点,并存在于第二个列表中。
最好的观察者是什么?
Point.cs:
Public class Point {public int X; public int Y}
答案 0 :(得分:2)
首先,您需要创建IEqualityComparer<Point>
。然后使用Intersect和Except Linq方法来实现您的目标。
其中points1和points2是你的积分列表。
要实现IEqualityComparer,refer this question作为开始。
答案 1 :(得分:0)
你可以做多件事。
首先使用System.Drawing.Point
结构代替您自己的类,您也可以进行比较。
其次,如果您必须创建自己的类,请覆盖班级中的Equals
和GetHashCode
。