朋友你好我希望創建一個讓(我正在創建的對象)點的兩個列表的方法和返回3清單包括的最佳方式:什麼是比較複雜對象的兩個列表在C#
第一個和第二個列表中存在的點。
存在於第一個列表中且不存在於第二個列表中的點。
第一個不存在,第二個列表中存在的點。
什麼是最好的wat做那個?
Point.cs:
Public class Point {public int X; public int Y}
朋友你好我希望創建一個讓(我正在創建的對象)點的兩個列表的方法和返回3清單包括的最佳方式:什麼是比較複雜對象的兩個列表在C#
第一個和第二個列表中存在的點。
存在於第一個列表中且不存在於第二個列表中的點。
第一個不存在,第二個列表中存在的點。
什麼是最好的wat做那個?
Point.cs:
Public class Point {public int X; public int Y}
你可以做多件事情。
首先使用System.Drawing.Point
結構代替你自己的類,你也可以進行比較。其次,如果您必須創建自己的班級,則在班級中覆蓋Equals
和GetHashCode
。
我明白,Linq之間的HashCode比較,所以我需要的方法GetHash代碼返回X值和Y值。我如何做到這一點? – Lol
首先您需要創建一個IEqualityComparer<Point>
。然後使用0123q和Except Linq方法來實現你想要的。
其中points1和points2是您的點列表。
要實現IEqualityComparer,refer this question作爲開始。
如果您需要關於設置操作的信息 - https://code.msdn.microsoft.com/LINQ-Set-Operators-374f34fe。可以找到更多類似的答案https://www.bing.com/search?q=C%23+items+exist+both+list。 –