Remove i hashtable
Hej alleJeg har en 2 klasser
En kontaktklasse og en container til kontakt implementeret som et hashtable.
Jeg kan ikke få slet-metoden til at virke.
Slet-metoden skulle gerne slette et element i hashtablet med nøjlen som argument.
Nedenstånde kan pastes direkte ind i c#-editor.
Koppelgaard alias Michael
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Kontakt k1 = new Kontakt("260164-1859","Michael","langvej 2","20601772","email@dk");
Kontakt k2 = new Kontakt("260164-1815", "Jan", "langvej 3", "20601773", "email@com");
ConKontakt liste = ConKontakt.Instance;
liste.Add(k1);
liste.Add(k2);
liste.Slet("260164-1859");
Console.WriteLine(liste);
Console.ReadLine();
}
}
public class ConKontakt
{
private static ConKontakt conKontakt;
private Hashtable kontaktListe;
private ConKontakt()
{
kontaktListe = new Hashtable();
}
public static ConKontakt Instance // retunere en conUdlån
{
get
{
lock (typeof(ConKontakt))
{
if (conKontakt == null)
conKontakt = new ConKontakt();
return conKontakt;
}
}
}
public void Add(Kontakt k)
{
kontaktListe.Add(k.CprNr, k);
}
public void Slet(string cpr)
{
Kontakt k = (Kontakt)kontaktListe[cpr];
this.kontaktListe.Remove(k);
}
public override string ToString()
{
string str = "";
foreach (DictionaryEntry entry in this.kontaktListe)
str = str + (Kontakt)entry.Value + "\n";
return str;
}
}
public class Kontakt
{
private string cprNr;
private string navn;
private string adresse;
private string tlf;
private string email;
//constructor
public Kontakt(string cprNr, string navn, string adresse, string tlf, string email)
{
this.cprNr = cprNr;//bør lave cprKontrol
this.navn = navn;
this.adresse = adresse;
this.tlf = tlf;
this.email = email;
}
//properties
public string CprNr
{
get { return cprNr; }
}
public string Navn
{
get { return navn; }
set { navn = value; }
}
public string Adresse
{
get { return adresse; }
set { adresse = value; }
}
public string Tlf
{
get { return tlf; }
set { tlf = value; }
}
public string Email
{
get { return email; }
set { email = value; }
}
public override string ToString()
{
string str = "CPR-Nr: " + cprNr + "\n" +
"Navn: " + navn + "\n" +
"Adresse: " + adresse + "\n" +
"Tlf: " + tlf + "\n" +
"Email: " + Email +
"\n---------------------------------\n";
return str;
}
}
}