获取集合哈希的最快方法是什么

What is the fastest way to get a hash of a collection

我正在尝试在 C# 中创建一个扩展方法,该方法接收对象集合并可以从中生成哈希。问题是我一直无法找到一种快速的方法。我试图让它在 O(1) 时间内完成,但我还没有找到任何有用的信息。这就是我目前拥有的,但它很慢而且没有真正起作用(这只是一个例子):

public static int GetCollectionHash(this IEnumerable collection)
{
    HashCode hash = new();
    foreach (var o in collection)
    {
        hash.Add(o);
    }
    return hash.ToHashCode();
}

做你想做的事情的唯一方法是创建你自己的集合并覆盖 add/remove/etc 方法并更新一个包含哈希值的私有变量,当它们被调用时

到那时,只需读取那个新变量