gethashcode

    0熱度

    2回答

    我知道這不是很聰明地使用HashCode作爲一個唯一的標識符, 但假設我有相同的hashCode兩個變量是我可以讓他們的唯一途徑, 我怎麼能說出不同?

    -1熱度

    2回答

    我對你的意見感興趣,這是關於在C#中編寫集成/系統測試的小型庫時出現的問題。該庫由 2部分組成:測試創作API和測試運行時API。測試編寫者使用創作API來構建測試計劃原型。運行時可以採用原型並創建原型的運行時表示並執行它。 爲了能夠測試一個名爲RuntimeTestPlanBuilder的類,我必須在整個運行時對象模型類上重寫Equals方法。這導致了我應該重寫GetHashCode方法的情況。

    1熱度

    1回答

    我很驚訝,當我發現我的覆蓋GetHashCode()Foo類的方法,當我使用foreach在IEnumerable<Foo>旅行被調用。但在其他情況下不會發生。爲什麼? 的真正的代碼的某些部分: var allVolumeImagesInvolvedInMerge = volumeChainsToMerge .SelectMany(x => x); var allVolumeImag

    2熱度

    5回答

    我的理解是,GetHashCode將爲共享相同值的兩個不同實例返回相同的值。 MSDN文檔在這一點上有點模糊。 哈希碼是一個數值,用於在進行相等測試期間識別對象 。 如果我有兩個相同類型的實例和相同的值將GetHashCode()返回相同的值? 假設所有的值都是一樣的,下面的測試過去還是失敗? SecurityUser只有getter和setter; [TestMethod] publi

    1熱度

    3回答

    我有一個標識客戶的字符串。在我的網站上,我有3個不同的圖片給沒有設置個人資料圖片的客戶。我想隨機將這些圖像中的一個與客戶相關聯,但不會在會話之間改變圖像。 是否與下面的代碼使用GetHashCode的,像什麼問題? switch (CustomerIdString.GetHashCode() % 3) { case 0: return "NoProfileImage0.pn

    4熱度

    1回答

    在一些C#代碼中,我使用了linqGroupBy<TSource, TKey>()方法和自定義的IEqualityComparer<T>。 GroupBy(x => x.SomeField, new FooComparer()); 我作爲分組鍵使用字段可以是null。因此,我不得不在Equals()方法添加一些null檢查: public bool Equals(Foo x, Foo y)

    0熱度

    2回答

    我需要知道使用哈希碼來比較許多對象的方法。所以這裏是其中一個班。 public class Test: IEquatable<Test> { public Test() { } public string ID { get; set; } public string Name{ get; set; } public static i

    0熱度

    2回答

    我目前正在嘗試使用containskey方法來檢查我所擁有的字典是否包含自定義類型的某個鍵。要做到這一點,我應該重寫gethashcode函數,但是,containskey方法仍然無法正常工作。一定有什麼東西我沒有做正確的,但我還沒有想通了,究竟是什麼在過去的5小時裏,我一直在嘗試這樣的: public class Parameter : IEquatable<Parameter> {

    2熱度

    2回答

    我剛剛注意到,例如接口IEqualityComparer<T>提供了public int GetHashCode(T obj)。 我在另一個接口/類中更經常看到public int GetHashCode()變體。爲什麼它是用輸入參數設計的?我明白,在'with argument'情況下,返回值不會基於調用者對象,而是方法的參數。在我看來,唯一需要GetHashCode的是null對象,是嗎? 最

    45熱度

    2回答

    我只是好奇,因爲我猜它會影響性能。它考慮完整的字符串嗎?如果是的話,那麼長串會慢。如果它只考慮字符串的一部分,它會有不好的表現(例如,如果它只考慮字符串的開始,如果一個HashSet包含大部分字符串,性能會很差