0

int[]、short[]、float[] などの組み込み型の配列のjava.util.Arrays.hashCode()に相当する .NET ユーティリティ クラスはありますか?

もちろん、独自のユーティリティ クラスを作成することもできましたが、.NET フレームワークで既に利用可能なものを見つけようとしていました。

4

3 に答える 3

1

これを行うフレームワーク自体には何もないと確信しています。いくつかのサードパーティの実装があるかもしれませんが、何も組み込まれていません (そして公開されていません)。

于 2009-07-24T14:49:52.387 に答える
0

バージョン 3.5 までの .Net に組み込まれていることを私は認識していませんが、.Net 4 は、実装するIStructuralEquatableインターフェイスを介してネイティブにサポートする可能性が非常に高いですArray(それを指摘してくれた Greg Beech に感謝します)。

IEnumerable の拡張メソッドを使用した簡単な実装を次に示します。

int HashContents<T>(this IEnumerable<T> enumerable)
{
    int hash = 0x218A9B2C;
    foreach (var item in enumerable)
    {
        int thisHash = item.GetHashCode();
        //mix up the bits.
        hash = thisHash ^ ((hash << 5) + hash);
    }
    return hash;
}

{0,0}これにより、とに異なるハッシュコードが与えられます{0,0,0}

于 2009-07-24T14:51:48.063 に答える