相关疑难解决方法(0)

.NET C# 中对象或其属性的确定性 UUID / 哈希

我需要一种方法来跨 .NET 框架/环境/执行一致地生成给定对象或对象属性子集的唯一 ID,同时最大限度地减少冲突。

  • 一遍又一遍地使用相同的属性应该总是产生相同的结果
  • 碰撞应该是最小的
  • 这些属性是字符串、整数和小数的混合
  • 属性值不是敏感数据
  • 不会添加或删除属性
  • 使用它的应用程序只是内部的(不向公众开放)
  • 我不想依赖 GetHashCode,它可能会因 .NET 框架/环境/执行而异,如andrewlock.net 上这篇精彩文章中所述
    • 他提出了一种可能的方法,但没有提供有关现实世界使用的太多信息

例如,给定一个固定对象,例如

public class ExampleObject
{
    public string Prop1 { get; set; }
    public string Prop2 { get; set; }
    public int Prop3 { get; set; }
    public decimal Prop4 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在考虑将所有值转换为字符串,连接它们,然后使用一些确定性算法来获得所需的结果

// Convert all values to strings and concat
string str1 = "a";
string str2 = "b";
int int1 = 1;
decimal dec1 = 1.2m;
string concatStr …
Run Code Online (Sandbox Code Playgroud)

.net c# hash

2
推荐指数
1
解决办法
2966
查看次数

标签 统计

.net ×1

c# ×1

hash ×1