C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のUri.GetHashCode()メソッドの使い方とサンプルコード解説

C#のUri.GetHashCode()メソッドは、URI(Uniform Resource Identifier)に対応するハッシュコードを取得するためのメソッドです。ハッシュコードは、ハッシュテーブルなどのデータ構造でオブジェクトを効率的に比較・管理する際に利用されます。

構文

GetHashCode()メソッドの構文は以下のとおりです。

public override int GetHashCode ();

このメソッドは引数を受け取らず、対象のURIを表す32ビット符号付き整数(int型)のハッシュコードを返します。

使用例1

それでは、GetHashCode()メソッドを使用した具体的なコード例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      string URI1 = "https://www.tutorialspoint.com/index.htm";
      Console.WriteLine("URI = "+URI1);
      string URI2 = "https://www.tutorialspoint.com/";
      Console.WriteLine("URI = "+URI2);
      Console.WriteLine("Escaped string (URI1) = "+Uri.EscapeDataString(URI1));
      Console.WriteLine("Escaped string (URI2) = "+Uri.EscapeDataString(URI2));
      Console.WriteLine("GetHashCode() for URI1 = "+URI1.GetHashCode());
      Console.WriteLine("GetHashCode() for URI2 = "+URI2.GetHashCode());
   }
}

実行結果1

上記のコードを実行すると、次のような出力が得られます。

URI = https://www.tutorialspoint.com/index.htm
URI = https://www.tutorialspoint.com/
Escaped string (URI1) = https%3A%2F%2Fwww.tutorialspoint.com%2Findex.htm
Escaped string (URI2) = https%3A%2F%2Fwww.tutorialspoint.com%2F
GetHashCode() for URI1 = -799747664
GetHashCode() for URI2 = 211597894

使用例2

続いて、別のURLを使った実装例を確認してみましょう。

using System;
public class Demo {
   public static void Main(){
      string URI1 = "https://www.qries.com/index.htm";
      Console.WriteLine("URI = "+URI1);
      string URI2 = "https://www.qries.com/";
      Console.WriteLine("URI = "+URI2);
      Console.WriteLine("Escaped string (URI1) = "+Uri.EscapeDataString(URI1));
      Console.WriteLine("Escaped string (URI2) = "+Uri.EscapeDataString(URI2));
      Console.WriteLine("GetHashCode() for URI1 = "+URI1.GetHashCode());
      Console.WriteLine("GetHashCode() for URI2 = "+URI2.GetHashCode());
   }
}

実行結果2

このコードを実行すると、以下のような出力になります。

URI = https://www.qries.com/index.htm
URI = https://www.qries.com/
Escaped string (URI1) = https%3A%2F%2Fwww.qries.com%2Findex.htm
Escaped string (URI2) = https%3A%2F%2Fwww.qries.com%2F
GetHashCode() for URI1 = -39330946
GetHashCode() for URI2 = -262746624

補足:ハッシュコードに関する注意点

サンプルコードでは文字列に対して直接GetHashCode()を呼び出していますが、Uriクラスのインスタンスに対しても同様に呼び出すことができます。なお、.NET Core以降では、文字列のハッシュコードはプロセスごとにランダム化されるため、実行するたびに異なる値が返される場合があります。そのため、ハッシュコードを永続化したり、アプリケーションをまたいで比較したりすることは避け、同一プロセス内での比較用途に限定して使用することが推奨されています。

  1. C#のType.GetHashCode()メソッドの使い方とサンプルコード解説

    C#のType.GetHashCode()メソッドは、現在のTypeインスタンスに対応するハッシュコードを返します。ハッシュコードは、DictionaryやHashSetといったハッシュベースのコレクションでオブジェクトを効率的に管理・検索するために利用される整数値です。構文Type.GetHashCode()メソッドの構文は以下の通りです。public override int GetHashCode ();引数は不要で、戻り値として現在のインスタンスのハッシュコードを表すint型の値が返されます。サンプル1:配列の型からハッシュコードを取得するまず、文字列配列のTypeオブジェクトに対して

  2. C#のCharEnumerator.GetHashCode()メソッドの使い方を解説

    C#におけるCharEnumerator.GetHashCode()メソッドは、現在のオブジェクトのハッシュコードを返します。ハッシュコードは、オブジェクトを識別するための整数値であり、ハッシュテーブルなどのデータ構造で効率的な検索を行う際に利用されます。構文public virtual int GetHashCode ();このメソッドは引数を受け取らず、現在のオブジェクトを表すint型のハッシュコードを返します。CharEnumeratorクラスでは、Objectクラスから継承されたこのメソッドが仮想メソッドとして定義されています。それでは、CharEnumerator.GetHashCo