vorneweg: ArrayList gehört in die Mottenkiste und sollte wie alle untypisierten Collections aus System.Collections nicht mehr benutzt werden, selbst als Workaround nicht. Generell sollte man nur noch List<T> und die anderen typisierten Collections aus System.Collections.Generic verwenden.
Hallo zusammen,
Ich möchte zwei Werte mit einander vergleichen dabei handelt es sich aber um Generische Typen.
Alle Daten sind in ein Dictionary<string, ArrayList> gespeichert
in der ArrayList ist nur ein Datensatz und wurde nur verwendet, da var und T nicht funktionieren.
Nun hab ich mir noch eine Methode erstellt die anhand des Key's im Dictionary das Value sucht und dieses in meinen Gewüschten Datentyp zurück gibt.
private bool Check<T>(string key, T oldValue)
{
if(GetValueFromDictionary<T>(key) != oldValue)
{
}
}
Fehlermeldung:
Der Operator "!=" kann nicht auf Operanden vom Typ "T" und "T" angewendet werden.
Weiß jemand wie ich diese zwei Werte vergleichen kann?
oldValue und Value sind immer vom gleichen DatenTyp der DatenTyp kann aber immer ein anderer sein.
Danke
Mit freundlichen Grüßen
Crone
Real programmers don't comment their code - it was hard to write, it should be hard to understand.
Okay hab doch noch eine Lösung gefunden.
static bool Compare<T>(T x, T y)
{
return x.Equals(y);
}
Damit hat sich die Frage erledigt 😃
Real programmers don't comment their code - it was hard to write, it should be hard to understand.
Hallo,
aber die ArrayList solltest du wirklich nicht verwenden.
Nimm doch einfach 'object' 😉
P.S. Falls x und y auch 'null' sein können, nimm besser
return Equals(x, y);
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Danke für die beiden Antworten, sehr nutzlich 😉
Real programmers don't comment their code - it was hard to write, it should be hard to understand.
Hallo Crone,
in diesem Zusammenhang sollte auch das IEquatable<T>-Interface nicht unerwähnt bleiben.
herbivore