動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

ハマり② int キーと string キーで Equals/GetHashCode 挙動が違う

出典: C# Dictionary と HashTable の使い分け — 業務SEが型安全に書く3つの判断軸HashTable で踏むハマりポイント / ハマり② int キーと string キーで Equals/GetHashCode 挙動が違う

ハマり② int キーと string キーで Equals/GetHashCode 挙動が違う (csharp)#c23d4bac8db3
// int キー: HashTable では毎回 boxing → GetHashCode 呼び出し
Hashtable ht = new Hashtable();
ht.Add(42, "answer");
var v1 = ht[42];     // 42 → object に boxing → GetHashCode → バケット検索
 
// string キー: 参照型なので boxing なし (ただし null チェックは必要)
Hashtable ht2 = new Hashtable();
ht2.Add("key", "value");
var v2 = ht2["key"]; // string はそのまま → GetHashCode → バケット検索
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #c23d4bac8db3
  • lines: 9
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「HashTable で踏むハマりポイント / ハマり② int キーと string キーで Equals/GetHashCode 挙動が違う」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

4
図鑑トップ