alle Funktionen besitzen eine .Equals funktion, die jedoch nicht bei allen DatenTypen funktioniert.
Hier gibt es schöne Hilfsfunktion um z.B. auch komplette Arrays mit einer Funktion zu vergleichen.
/// <summary>
/// Gibt zurück ob der Inhalt zweier Elemente übereinstimmt
/// </summary>
/// <param name="a">Element a</param>
/// <param name="b">Element b</param>
/// <returns>True bei erfolg</returns>
public static bool EqualContent(object a,object b)
{
//Falls beide Leer sind
if (a == null && b==null)
//Erfolgreich
return true;
//Wenn eins von beiden null ist
if (a == null || b == null)
//Nicht gleich
return false;
//Stream für vergleich öffnen
System.IO.MemoryStream sA = new System.IO.MemoryStream();
System.IO.MemoryStream sB = new System.IO.MemoryStream();
//Binär beide Serialisieren
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bin = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
bin.Serialize(sA,a);
bin.Serialize(sB,b);
//In Array lesen
byte[] saB = sA.ToArray();
byte[] sbB = sB.ToArray();
//Array vergleichen
if (saB.Length == sbB.Length)
{
for(int i=0;i<saB.Length;i++)
if (!saB[i].Equals(sbB[i]))
return false;
}
else
{
//Länge stimmt schonmal nicht überein
return false;
}
//Jetzt kann es nur noch übereinstimmen ;)
return true;
}
Kommentare zum Snippet