比方說,我有兩個不同的傳遞給一般函數的相同(任意)類型的對象。我需要一種方法來每次都以相同的方式排列它們,而不管它們作爲參數傳入的順序。它們的順序並不重要,只是在邊緣情況下它們具有相同的哈希碼,但不通過.equal。在大多數情況下,他們有不同的哈希碼,哈希碼將被簡單地使用。具有相同哈希碼的兩個不同對象的確定性排序
假設:
- 相同的基本類型
- 相同的散列碼
- 不相同的對象
- 參考類型
- 對象不能被釘扎
- .Equals返回false
- 對象.ReferencesEquals返回假
- 沒有一個對象是空
- 順序只需要在特定組件
的具體運行中一致希望,有人能拿出一個創造性的解決方案,這一點,罕見的,但麻煩的邊緣情況我已經錯過了。由於
你可以嘗試對他們的內存地址進行排序,但這隻會在運行你的應用程序的同一會話期間保持一致。一旦你重新啓動應用程序,地址將會改變。 https://msdn.microsoft.com/en-us/library/zcbcf4ta.aspx – Mangist
@Mangist「無法固定對象」 – TheCatWhisperer