C# - Klasse in Hashtables speichern und abrufen

.:L

0
Hi,

folgendes Problem:

Ich speicher zu einem Host bestimmte Daten in einer Hashtable:

Tab.Key = Host
Tab.Value = Klasse

Klasse beinhaltet
1x Datetime
div. Strings mit Hostinformationen

Konkret:
Code:
public class varTab
    {
        public DateTime myTime = new DateTime();
        public long roundTrip;
    }
Befüllung der Table:
Code:
varTab VarTabs = new varTab();
if ((reply.Status == IPStatus.Success))
                    {
                        if (!myIP.ContainsKey(reply.Address))
                        {
                            VarTabs.myTime = DateTime.Now;
                            VarTabs.roundTrip = reply.RoundtripTime;
                            myIP.Add(reply.Address, VarTabs);
                        }
                    }
Meine Frage: Wie komme ich an die gespeicherten Werte wieder ran?

Ich möchte die Table in einer Listbox ausgeben, das mache ich wie folgt:
Code:
foreach (DictionaryEntry S in myIP)
                { 
                    listBox1.Items.Add(S.Key + " - " + S.Value);
                }
(Ist noch der Stand, bevor ich die Hashtable eingebaut habe).

Meine Frage: Wie komme ich an meine gespeicherten Objekte in der Table wieder dran?

Folgendes Habe ich versucht:
Code:
varTab tempTab = new varTab();
tempTab = S.Value;
Funktioniert allerdings nicht...

Ist das überhaupt möglich oder muss ich mir da was neues einfallen lassen?


Gruß
L
 
In Deiner foreach kannste ja mit (S.Value as varTab).myTime auf das Objekt zugreifen.

Aber warum benutzt Du Hashtables? Performanter sind Dictionarys. Diese sind auch Generic, damit kannste dann in Deiner foreach KeyValuePair benutzen womit Du dann über den Value direkt auf Dein Objekt zugriff hast.
 
  • Like
Reactions: .:L
Hi,

habe bis jetzt noch nie mit Distionaries gearbeitet, scheint aber ganz gut zu funktionieren, danke für den Tip, klappt super.
 
Zurück
Oben