Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1841 | Besucher online: 2
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Equals für alle DatenTypen (byte[], ....)


Autor: Horego
Sprache: C#
Bewertung:
7.77 (3 votes)
Anzahl der Aufrufe: 7094
  
Kick it on dotnet-kicks.de  

Beschreibung:

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.


Abgelegt unter: Equals, Equal, EqualContent, Abgleichen, Objekt, Objekte.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/// <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;
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.