中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C# byte數組能作為哈希鍵嗎

c#
小樊
82
2024-07-13 12:38:28
欄目: 編程語言

在C#中,byte數組可以作為哈希鍵,只要符合哈希鍵的要求。哈希鍵必須是不可變的,并且需要實現GetHashCode()和Equals()方法。在使用byte數組作為哈希鍵時,可以自定義一個類來包裝byte數組,并實現這些方法。例如:

public class ByteArrayKey
{
    private byte[] key;

    public ByteArrayKey(byte[] key)
    {
        this.key = key;
    }

    public override int GetHashCode()
    {
        unchecked
        {
            int hash = 17;
            foreach (byte b in key)
            {
                hash = hash * 31 + b.GetHashCode();
            }
            return hash;
        }
    }

    public override bool Equals(object obj)
    {
        if (obj is ByteArrayKey other)
        {
            return key.SequenceEqual(other.key);
        }
        return false;
    }
}

然后可以使用這個ByteArrayKey類作為哈希鍵,例如:

var dictionary = new Dictionary<ByteArrayKey, string>();

byte[] key1 = new byte[] { 0x01, 0x02, 0x03 };
byte[] key2 = new byte[] { 0x04, 0x05, 0x06 };

dictionary[new ByteArrayKey(key1)] = "Value1";
dictionary[new ByteArrayKey(key2)] = "Value2";

Console.WriteLine(dictionary[new ByteArrayKey(key1)]); // Output: Value1
Console.WriteLine(dictionary[new ByteArrayKey(key2)]); // Output: Value2

這樣就可以使用byte數組作為哈希鍵了。

0
隆尧县| 阿勒泰市| 鸡泽县| 宜良县| 文山县| 青岛市| 太谷县| 麻江县| 临邑县| 奇台县| 高安市| 资兴市| 阿合奇县| 南陵县| 株洲县| 三河市| 江阴市| 泌阳县| 寿光市| 绥阳县| 勐海县| 万山特区| 沙坪坝区| 聂拉木县| 得荣县| 万盛区| 巴彦县| 准格尔旗| 太和县| 城步| 潢川县| 凤台县| 宜兰市| 平武县| 土默特左旗| 巴林左旗| 慈利县| 清涧县| 赤壁市| 宜君县| 景东|