我試圖使用Enumerable.SequenceEqual(x,y)
,因爲我預計它的工作基於 Object.Equals(x,y)
方法,如果x或y爲空則返回false,如果兩者都爲null(對於null情況)則返回true。爲什麼Enumerable.SequenceEqual在任何參數爲null時拋出異常?
但是Enumerable.SequenceEqual(x,y)
如果任何參數爲空引用,則拋出異常,如果給定兩個空值,則不會返回true。
在我的代碼檢查集合平等經常所以我創建了一個方法,模仿的序列Object.Equals
的行爲,但我只是想知道什麼背後的違約行爲邏輯,並有可能對空值沒有例外現有的方法?
那麼,第一個參數爲null的事實會引發異常,這是有道理的,因爲它是一種擴展方法。它通常被調用爲'x.SequenceEqual(y)',因此模仿'x.Equals(y)',如果'x'在'null'處也會拋出。 –