我想从其他 Guid 列表中生成一个 Guid。生成的 Guid 必须具有这样的属性:对于相同的 guid 输入列表,无论我应用转换多少次,生成的 Guid 都将是相同的。
此外,它应该具有尽可能低的冲突,以便输入处的不同 guid 会在输出处生成不同的 guid。
有人可以帮我解决这个问题吗?去这里最好的方式是什么?它基本上是一个哈希函数,但基于 Guid。
最佳答案
您可以对 Guid 的各个字节进行一些算术 - 下面的代码基本上将它们相加(由于溢出而模 256):
byte[] totalBytes = new byte[16];
foreach (var guid in guids) {
var bytes = guid.ToByteArray();
for (int i = 0; i < 16; i++) {
totalBytes[i] += bytes[i];
}
}
var totalGuid = new Guid(totalBytes);
关于c# - 从指南列表生成确定性指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208865/