簡體   English   中英

包含相同元素的兩個數組可以不相等嗎?

[英]Can two arrays which contain the same elements not be equal?

今天,我遇到了一個令人震驚的問題,我試圖查找List集合中是否包含對象。 問題是列表找不到對象,並且當我已經可以看到索引時返回索引為-1。 然后,我創建了一個自定義的索引查找器 ,通過比較屬性而不是直接相等來查找對象,我發現該對象的一個​​屬性,即一個相同的ushort數組,在比較時返回false,但是它們包含的元素完全相同。

數組如下:

{ushort [1]} [0] 13

兩者完全相同,除了其中一個對象包含在列表中,而另一個對象獨立存在。 可能是這個問題的原因? 我已經嘗試了各種類型的方法來解決問題,但是我不能僅僅弄清楚問題是什么。 在這種特殊情況下,導致兩個數組之間的比較返回false的原因是,我使用Object.equals和常規==比較器進行了綁定。 謝謝

對於數組,僅當您比較兩個指向同一數組的引用時,Equals才會返回true。 要按內容比較不同的數組,可以使用:

 Enumerable.SequenceEqual(a1, a2)

另外,如果collection包含您的自定義類型的對象,請確保這些類型覆蓋Equals,equalityoperator(==)和GetHashCode。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM