Deterministische UUID / Hash aus einem Objekt oder seinen Eigenschaften in .NET C#C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Deterministische UUID / Hash aus einem Objekt oder seinen Eigenschaften in .NET C#

Post by Anonymous »

Ich muss eine Möglichkeit, eine eindeutige ID mit einem Objekt oder einer Untergruppe von Eigenschaften aus dem Objekt über .NET -Frameworks /-umgebungen /-ausführungen mit minimalen Kollisionen konsistent zu erzeugen. von Strings, INTs und Dezimalstellen < /li>
Die Werte der Eigenschaften sind keine sensiblen Daten < /li>
Die Eigenschaften werden nicht hinzugefügt oder entfernt < /li>
Die Anwendung, die dies verwendet, ist nur intern (nicht für die Öffentlichkeit) < /li>
Ich kann nicht übergezogen werden. Ausführungen, wie in diesem großartigen Artikel bei Andrewlock.net

Er schlägt eine mögliche Methode vor, liefert jedoch nicht viele Informationen zur realen Welt.

Code: Select all

public class ExampleObject
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
public int Prop3 { get; set; }
public decimal Prop4 { get; set; }
}
< /code>
Ich habe darüber nachgedacht, alle Werte in eine Zeichenfolge umzuwandeln, sie zu verkettet und dann einen deterministischen Algorithmus zu verwenden, um das gewünschte Ergebnis zu erhalten. < /p>
// Convert all values to strings and concat
string str1 = "a";
string str2 = "b";
int int1 = 1;
decimal dec1 = 1.2m;
string concatStr = $"{str1}_{str2}_{int1.ToString()}_{dec1.ToString()}";

// Use the string to generate the desired value
< /code>
Ich habe gesehen, wie Leute einen MD5 -Hash aus der Zeichenfolge generieren oder mir nicht sicher sind, dass die reale Nutzung für Millionen möglicher Kombinationen der Saiten /INTs /Dezimalstellen. Der Wert sollte sich nicht ändern, aber könnte der .ToString () 
die Genauigkeit in verschiedenen Umgebungen unterschiedlich verarbeiten?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post