C # ما يعادل جافا IdentityHashMap
-
22-07-2019 - |
سؤال
وبقدر ما أعرف، ليس هناك ما يعادلها المباشر في C #. فكرتي الحالية هو استخدام قاموس مع العرف IEqualityComparer، الذي يتحقق من المساواة المرجعية.
ولكن، يبدو أن هذا يفقد ميزة التي اكتسبتها تجزئة. هل هناك طريقة للحصول على شفرة التجزئة الفردية من كل كائن مختلف؟ أم أن هذا مستحيل وأود أن استخدام بعض النهج الآخر؟
المحلول
ويمكنك استخدام RuntimeHelpers.GetHashCode(object)
التي تدعو object.GetHashCode()
غير تقريبا - وهذا هو ما يعادل System.identityHashcode
في جاوة. أعتقد أن هذا ما كنت بعد. حتى IEqualityComparer
من شأنه فقط أن استخدام تجزئة وobject.ReferenceEquals
من أجل المساواة.
لا تنتمي إلى StackOverflow