問題タブ [gethashcode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1454 参照

c# - 列挙型でXOR演算子を使用してGetHashCodeと等式演算子をオーバーロードする

静的分析パッケージの一部である次のクラスがあります。

  • オブジェクトはMetricKey辞書キーとして使用されます。
  • DecisionMetricUnitPortfolio​​はすべて列挙型です。

辞書のキーマッチングを機能させるには、等式演算子(==)をオーバーライドする必要がありました。http://msdn.microsoft.com/en-us/library/ms173147.aspxのガイダンスを使用しました。ガイダンスでは、実行したGetHashCodeメソッドをオーバーロードする必要があると述べていますが、XOR(^)演算で列挙型を整数にキャストすることの意味を理解していません。私が行ったことは有効ですか、それとも列挙型整数値が重複しているために競合するハッシュコードを取得しますか?:

0 投票する
7 に答える
16291 参照

c# - EqualsとGetHashCodeの最善の戦略は何ですか?

私はドメインモデルを使用していて、これら2つのメソッドを.NETに実装するためのさまざまな方法について考えていました。あなたの好ましい戦略は何ですか?

これは私の現在の実装です:

0 投票する
2 に答える
17447 参照

null - nullフィールドのGetHashCode?

関数内のnullフィールドを処理するにはどうすればよいGetHashCodeですか?

0 投票する
2 に答える
333 参照

.net - 「ナイーブ」なものの代わりに「プライムベース」のハッシュコード実装を使用する必要があるのはなぜですか?

GetHashCode関数の素数の実装が推奨されていることを確認しました。たとえば、ここにあります。ただし、次のコード(VBでは申し訳ありません)を使用すると、その実装は「ナイーブ」なxor実装と同じハッシュ密度を提供するように見えます。密度が同じである場合、両方の実装で衝突の確率は同じであると思います。なぜプライムアプローチが好まれるのか、私は何かを見逃していますか?

ハッシュコードがバイトの場合、整数の場合の一般性を失うことはないと思います。

0 投票する
1 に答える
973 参照

c# - .Net HashSetの一意性の計算は、完全にハッシュコードに基づいていますか?

HashSet<T>.Netが完全にハッシュコードに基づいているのか、それとも同等性を使用しているのか疑問に思いました。

何百万ものインスタンスをインスタンス化する可能性のある特定のクラスがあり、その時点で一部のハッシュコードが衝突する可能性があります。

このクラスのいくつかのインスタンスを格納するためにHashSetを使用することを検討していて、実際に実行する価値があるかどうか疑問に思っています-要素の一意性がそのハッシュコードでのみ決定される場合、それは実際のアプリケーションでは役に立ちません

MSDNのドキュメントは、このトピックに関してかなり曖昧なようです-どんな啓蒙もいただければ幸いです

0 投票する
2 に答える
1126 参照

equals - IEquatable の実装方法可変フィールドが等価の一部である場合 - GetHashCode の問題

アプリケーションで Entity Framework を使用しています。

IEquatable<T>インターフェイスのエンティティの部分クラスで実装しました。

私のコードでは、次のように使用しています。

EntityCollection クラスはそのエンティティを HashSet に格納するため、GetHashCode 関数と関係があることに注意してください (デバッガ ビジュアライザで確認しました)。エンティティが ID で比較されるように、ID に依存するようにします。

問題は、保存を押すと、ID が 0 からその db 値に変わることです。したがって、問題は、適切にハッシュされた同等のオブジェクトをどのように取得できるかです。

GetHashCode 関数の何が問題なのか (ID で)、それを機能させるために何を変更すればよいかを教えてください。

どうもありがとう。

0 投票する
2 に答える
400 参照

c# - c# には、equals と gethashcode() を使用した Java と同じ問題がありますか?

c# には、equals と gethashcode を使用した Java と同じ問題がありますか?

次のような問題: http://onjava.com/pub/a/onjava/2006/09/13/dont-let-hibernate-steal-your-identity.html

0 投票する
2 に答える
255 参照

c# - ディクショナリ キーには、キーに既に含まれているキーは含まれません

次の「存在する」ブール変数の値がfalseになるのはなぜですか???

GetHashCode() & Equals() メソッドを次のようにオーバーライドしました。

0 投票する
2 に答える
1392 参照

c# - NHibernateセット:EqualsとGetHashCodeをオーバーライドする必要がありますか?

NHibernateは初めてです。私はいくつかの多対1および多対多の関連付けに<set...>マッピングを使用しています。これらは、実際にはHashSet <T>によって実装される、タイプICollection<T>のプロパティとして公開されます。

私の質問は、関連するタイプのEqualsとGetHashCodeをオーバーライドして、タイプのデータベースIDと一致させる必要があるかどうかです(実際には、Idプロパティが等しいときにオブジェクトが等しくなるようにします)。それとも、NHibernateは私のためにこれを何らかの方法で処理しますか?

これを行うと、一度に多対多のコレクションに複数の値を挿入したい場合に問題が発生します。これは、新しい要素のId​​がGuid.Emptyである可能性があるためです。したがって、同じアイテムと見なされます。

0 投票する
4 に答える
139 参照

c# - 参照型の値を辞書キーとして使用するには、何をする必要がありますか?

Tコレクションのキーとして使用したいクラスがあるとしDictionary<T,U>ます。

これらのキーが参照ではなくTの値に基づくようにするには、何を実装する必要がありますか?TT

私はそれがただであることを望んでいGetHashCode()ます。