我正在尝试在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方法,并在调用时更新包含哈希的私有变量
此时,只需读取新的变量