データ構造の値に基づいて辞書を作成する必要があります。このキーを作成する最適な方法は何でしょうか?
データ構造には、2 つの文字列と日時の 3 つの値があります。これらの 3 つの値を組み合わせて、辞書の「一意の」キーを表します。
public class RouteIdentity
{
public string RouteId {get;set;}
public string RegionId {get;set;}
public DateTime RouteDate {get;set;}
}
頭に浮かぶ1つの解決策は、3つの一意の値の表現を返すプロパティを追加することです(おそらくRouteIdentity
と呼ばれますか?)。Key
の型はKey
、辞書のキー値の型になります。Key
さまざまなプロパティを単純に連結した文字列値にすることもできますが、これは非常に非効率的です。高速ハッシュ関数を実装して別の型を返す方法があれば、それも機能する可能性があると思います。
もう 1 つの可能性は、 の Equals 演算子をオーバーライドすることですRouteIdentity
。GetHashCode()
これはより良いアプローチかもしれないと考えていますが、そのような目的で関数をオーバーライドする方法がわかりません。
この場合の最適なアプローチが何であるかについて、誰かが光を当てることができますか? 演算子のオーバーロードを使用するのが最善だと思われる場合は、それを適切に実装する方法についていくつかのガイダンスを提供していただけますか?
前もって感謝します。